Dissect flags field for enumprinters rpc.
The string in this rpc is not a devmode, but rather an object name. svn path=/trunk/; revision=6092
This commit is contained in:
parent
320621f2f4
commit
532f7b3d1e
|
@ -2,7 +2,7 @@
|
|||
* Routines for SMB \PIPE\spoolss packet disassembly
|
||||
* Copyright 2001-2002, Tim Potter <tpot@samba.org>
|
||||
*
|
||||
* $Id: packet-dcerpc-spoolss.c,v 1.50 2002/08/22 07:05:31 guy Exp $
|
||||
* $Id: packet-dcerpc-spoolss.c,v 1.51 2002/08/27 07:38:36 tpot Exp $
|
||||
*
|
||||
* Ethereal - Network traffic analyzer
|
||||
* By Gerald Combs <gerald@ethereal.com>
|
||||
|
@ -3362,12 +3362,24 @@ static int SpoolssEnumPrinterData_r(tvbuff_t *tvb, int offset,
|
|||
* SpoolssEnumPrinters
|
||||
*/
|
||||
|
||||
static gint ett_enumprinters_flags = -1;
|
||||
|
||||
static int hf_enumprinters_flags_local = -1;
|
||||
static int hf_enumprinters_flags_name = -1;
|
||||
static int hf_enumprinters_flags_shared = -1;
|
||||
static int hf_enumprinters_flags_default = -1;
|
||||
static int hf_enumprinters_flags_connections = -1;
|
||||
static int hf_enumprinters_flags_network = -1;
|
||||
static int hf_enumprinters_flags_remote = -1;
|
||||
|
||||
static int SpoolssEnumPrinters_q(tvbuff_t *tvb, int offset, packet_info *pinfo,
|
||||
proto_tree *tree, char *drep _U_)
|
||||
{
|
||||
dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
|
||||
dcerpc_call_value *dcv = (dcerpc_call_value *)di->call_data;
|
||||
guint32 ptr, level;
|
||||
guint32 ptr, level, flags;
|
||||
proto_tree *flags_subtree;
|
||||
proto_item *flags_item;
|
||||
|
||||
if (dcv->rep_frame != 0)
|
||||
proto_tree_add_text(tree, tvb, offset, 0,
|
||||
|
@ -3375,9 +3387,43 @@ static int SpoolssEnumPrinters_q(tvbuff_t *tvb, int offset, packet_info *pinfo,
|
|||
|
||||
/* Parse packet */
|
||||
|
||||
offset = prs_uint32(tvb, offset, pinfo, tree, NULL, "Flags");
|
||||
offset = prs_uint32(tvb, offset, pinfo, NULL, &flags, "Flags");
|
||||
|
||||
offset = prs_ptr(tvb, offset, pinfo, tree, &ptr, "Devicemode");
|
||||
flags_item = proto_tree_add_text(tree, tvb, offset - 4, 4,
|
||||
"Flags: 0x%08x", flags);
|
||||
|
||||
flags_subtree = proto_item_add_subtree(
|
||||
flags_item, ett_enumprinters_flags);
|
||||
|
||||
proto_tree_add_boolean(
|
||||
flags_subtree, hf_enumprinters_flags_network, tvb,
|
||||
offset - 4, 4, flags);
|
||||
|
||||
proto_tree_add_boolean(
|
||||
flags_subtree, hf_enumprinters_flags_shared, tvb,
|
||||
offset - 4, 4, flags);
|
||||
|
||||
proto_tree_add_boolean(
|
||||
flags_subtree, hf_enumprinters_flags_remote, tvb,
|
||||
offset - 4, 4, flags);
|
||||
|
||||
proto_tree_add_boolean(
|
||||
flags_subtree, hf_enumprinters_flags_name, tvb,
|
||||
offset - 4, 4, flags);
|
||||
|
||||
proto_tree_add_boolean(
|
||||
flags_subtree, hf_enumprinters_flags_connections, tvb,
|
||||
offset - 4, 4, flags);
|
||||
|
||||
proto_tree_add_boolean(
|
||||
flags_subtree, hf_enumprinters_flags_local, tvb,
|
||||
offset - 4, 4, flags);
|
||||
|
||||
proto_tree_add_boolean(
|
||||
flags_subtree, hf_enumprinters_flags_default, tvb,
|
||||
offset - 4, 4, flags);
|
||||
|
||||
offset = prs_ptr(tvb, offset, pinfo, tree, &ptr, "Name");
|
||||
|
||||
if (ptr)
|
||||
offset = prs_struct_and_referents(tvb, offset, pinfo, tree,
|
||||
|
@ -6620,7 +6666,44 @@ proto_register_dcerpc_spoolss(void)
|
|||
{ &hf_job_access_admin,
|
||||
{ "Job admin", "spoolss.access_mask.job_admin",
|
||||
FT_BOOLEAN, 32, TFS(&flags_set_truth),
|
||||
JOB_ACCESS_ADMINISTER, "Job admin", HFILL }}
|
||||
JOB_ACCESS_ADMINISTER, "Job admin", HFILL }},
|
||||
|
||||
/* Enumprinters */
|
||||
|
||||
{ &hf_enumprinters_flags_local,
|
||||
{ "Enum local", "spoolss.enumprinters.flags.enum_local",
|
||||
FT_BOOLEAN, 32, TFS(&flags_set_truth),
|
||||
PRINTER_ENUM_LOCAL, "Enum local", HFILL }},
|
||||
|
||||
{ &hf_enumprinters_flags_name,
|
||||
{ "Enum name", "spoolss.enumprinters.flags.enum_name",
|
||||
FT_BOOLEAN, 32, TFS(&flags_set_truth),
|
||||
PRINTER_ENUM_NAME, "Enum name", HFILL }},
|
||||
|
||||
{ &hf_enumprinters_flags_shared,
|
||||
{ "Enum shared", "spoolss.enumprinters.flags.enum_shared",
|
||||
FT_BOOLEAN, 32, TFS(&flags_set_truth),
|
||||
PRINTER_ENUM_SHARED, "Enum shared", HFILL }},
|
||||
|
||||
{ &hf_enumprinters_flags_default,
|
||||
{ "Enum default", "spoolss.enumprinters.flags.enum_default",
|
||||
FT_BOOLEAN, 32, TFS(&flags_set_truth),
|
||||
PRINTER_ENUM_DEFAULT, "Enum default", HFILL }},
|
||||
|
||||
{ &hf_enumprinters_flags_connections,
|
||||
{ "Enum connections", "spoolss.enumprinters.flags.enum_connections",
|
||||
FT_BOOLEAN, 32, TFS(&flags_set_truth),
|
||||
PRINTER_ENUM_CONNECTIONS, "Enum connections", HFILL }},
|
||||
|
||||
{ &hf_enumprinters_flags_network,
|
||||
{ "Enum network", "spoolss.enumprinters.flags.enum_network",
|
||||
FT_BOOLEAN, 32, TFS(&flags_set_truth),
|
||||
PRINTER_ENUM_NETWORK, "Enum network", HFILL }},
|
||||
|
||||
{ &hf_enumprinters_flags_remote,
|
||||
{ "Enum remote", "spoolss.enumprinters.flags.enum_remote",
|
||||
FT_BOOLEAN, 32, TFS(&flags_set_truth),
|
||||
PRINTER_ENUM_REMOTE, "Enum remote", HFILL }}
|
||||
};
|
||||
|
||||
static gint *ett[] = {
|
||||
|
@ -6662,6 +6745,7 @@ proto_register_dcerpc_spoolss(void)
|
|||
&ett_NOTIFY_OPTION,
|
||||
&ett_printer_attributes,
|
||||
&ett_job_status,
|
||||
&ett_enumprinters_flags,
|
||||
};
|
||||
|
||||
proto_dcerpc_spoolss = proto_register_protocol(
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* Routines for SMB \PIPE\spoolss packet disassembly
|
||||
* Copyright 2001, Tim Potter <tpot@samba.org>
|
||||
*
|
||||
* $Id: packet-dcerpc-spoolss.h,v 1.11 2002/08/21 21:31:14 tpot Exp $
|
||||
* $Id: packet-dcerpc-spoolss.h,v 1.12 2002/08/27 07:38:36 tpot Exp $
|
||||
*
|
||||
* Ethereal - Network traffic analyzer
|
||||
* By Gerald Combs <gerald@ethereal.com>
|
||||
|
@ -307,4 +307,15 @@
|
|||
#define PRINTER_ACCESS_USE 0x00000008
|
||||
#define JOB_ACCESS_ADMINISTER 0x00000010
|
||||
|
||||
/* Enumprinters flags */
|
||||
|
||||
#define PRINTER_ENUM_DEFAULT 0x00000001
|
||||
#define PRINTER_ENUM_LOCAL 0x00000002
|
||||
#define PRINTER_ENUM_CONNECTIONS 0x00000004
|
||||
#define PRINTER_ENUM_FAVORITE 0x00000004
|
||||
#define PRINTER_ENUM_NAME 0x00000008
|
||||
#define PRINTER_ENUM_REMOTE 0x00000010
|
||||
#define PRINTER_ENUM_SHARED 0x00000020
|
||||
#define PRINTER_ENUM_NETWORK 0x00000040
|
||||
|
||||
#endif /* packet-dcerpc-spoolss.h */
|
||||
|
|
Loading…
Reference in New Issue