summaryrefslogtreecommitdiff
path: root/epan/dissectors/packet-dcerpc.h
diff options
context:
space:
mode:
authorRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2007-08-28 11:45:08 +0000
committerRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2007-08-28 11:45:08 +0000
commit8fde3b7561ce61061c6d9ae8149c1ea916fdd7cb (patch)
tree6d42c0f32f0c521e3e63c363d1bb715b6a1bb842 /epan/dissectors/packet-dcerpc.h
parent659b175cd799288e125f633ccc0d5dcf4d05f16c (diff)
downloadwireshark-8fde3b7561ce61061c6d9ae8149c1ea916fdd7cb.tar.gz
rename dcerpc_smb_store_pol_name to dcerpc_store_polhnd_name
rename dcerpc_smb_fetch_pol to dcerpc_fetch_polhnd_data and also make it take an additional parameter to return the "type" of the policy handle, if such a type was stored. extend the pol_value structure used to track policy handles to also store a type to represent what created the policy handle types could be USER/ALIAS/CONNECT/... etc handles returned from the SAMR interface add a new helper function dcerpc_store_polhnd_type() track policy handles between request/responses for dcerpc update the samr.cnf file to make the samr dissectors for SetSecurity/QuerySecurity dissect the specific bits for the security descriptor correctly based on whether the policy handle refers to a CONNECT/DOMAIN/USER/ALIAS or GROUP svn path=/trunk/; revision=22703
Diffstat (limited to 'epan/dissectors/packet-dcerpc.h')
-rw-r--r--epan/dissectors/packet-dcerpc.h33
1 files changed, 31 insertions, 2 deletions
diff --git a/epan/dissectors/packet-dcerpc.h b/epan/dissectors/packet-dcerpc.h
index 6482df2681..3dfd954999 100644
--- a/epan/dissectors/packet-dcerpc.h
+++ b/epan/dissectors/packet-dcerpc.h
@@ -294,6 +294,7 @@ typedef struct _dcerpc_call_value {
* request to the reply.
*/
void *private_data; /* XXX This will later be renamed as ep_data */
+ e_ctx_hnd *pol; /* policy handle tracked between request/response*/
} dcerpc_call_value;
typedef struct _dcerpc_info {
@@ -430,12 +431,40 @@ init_ndr_pointer_list(packet_info *pinfo);
*/
/* Policy handle tracking. Describes in which function a handle is
* opened/closed. See "winreg.cnf" for example.
+ *
+ * The guint32 param is divided up into multiple fields
+ *
+ * +--------+--------+--------+--------+
+ * | Flags | Type | | |
+ * +--------+--------+--------+--------+
*/
+/* Flags : */
#define PIDL_POLHND_OPEN 0x80000000
#define PIDL_POLHND_CLOSE 0x40000000
/* To "save" a pointer to the string in dcv->private_data */
-#define PIDL_STR_SAVE 0x00020000
+#define PIDL_STR_SAVE 0x20000000
/* To make this value appear on the summary line for the packet */
-#define PIDL_SET_COL_INFO 0x00010000
+#define PIDL_SET_COL_INFO 0x10000000
+
+/* Type */
+#define PIDL_POLHND_TYPE_MASK 0x00ff0000
+#define PIDL_POLHND_TYPE_SAMR_USER 0x00010000
+#define PIDL_POLHND_TYPE_SAMR_CONNECT 0x00020000
+#define PIDL_POLHND_TYPE_SAMR_DOMAIN 0x00030000
+#define PIDL_POLHND_TYPE_SAMR_GROUP 0x00040000
+#define PIDL_POLHND_TYPE_SAMR_ALIAS 0x00050000
+
+
+/* a structure we store for all policy handles we track */
+typedef struct pol_value {
+ struct pol_value *next; /* Next entry in hash bucket */
+ guint32 open_frame, close_frame; /* Frame numbers for open/close */
+ guint32 first_frame; /* First frame in which this instance was seen */
+ guint32 last_frame; /* Last frame in which this instance was seen */
+ char *name; /* Name of policy handle */
+ guint32 type; /* policy handle type */
+} pol_value;
+
+
#endif /* packet-dcerpc.h */