aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-smb2.h
diff options
context:
space:
mode:
authorsahlberg <sahlberg@f5534014-38df-0310-8fa8-9805f1628bb7>2005-11-12 07:45:01 +0000
committersahlberg <sahlberg@f5534014-38df-0310-8fa8-9805f1628bb7>2005-11-12 07:45:01 +0000
commit7c3b0a0d6d82fc27a103e7c93e89b5c77da56a58 (patch)
treed1747244274c961e6c7ca2834abe3ddfcbf312b3 /epan/dissectors/packet-smb2.h
parent230c83e69604eb305fb22edc9be56b478b5976e2 (diff)
in order to handle dcerpc over smb2 later and to make the heuristics stronger for determining what might and what might not be a pipe
add TID tracking. for all TreeConnect requests/resposnes seen, store the name->tid mapping and other metadata. as a freebee the disswection of the tid in the ehader is aware of this table so when a tid value is dissected in the header and we known the name for this tid then put it in an expansion below the tid. git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@16483 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan/dissectors/packet-smb2.h')
-rw-r--r--epan/dissectors/packet-smb2.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/epan/dissectors/packet-smb2.h b/epan/dissectors/packet-smb2.h
index 7cc81bce93..55a5b8e6cb 100644
--- a/epan/dissectors/packet-smb2.h
+++ b/epan/dissectors/packet-smb2.h
@@ -37,16 +37,26 @@ ETH_VAR_IMPORT const value_string smb2_cmd_vals[];
* There is no guarantee we will have this structure available for all
* SMB2 packets so a dissector must check this pointer for NULL
* before dereferencing it.
+ *
+ * private data is set to NULL when the structure is created. It is used
+ * for communications between the Request and the Response packets.
*/
typedef struct _smb2_saved_info_t {
guint8 class;
guint8 infolevel;
guint64 seqnum;
- char *create_name;
+ void *private_data;
guint32 frame_req, frame_res;
nstime_t req_time;
} smb2_saved_info_t;
+#define SMB2_FLAGS_TID_IS_IPC 0x00000001
+typedef struct _smb2_tid_info_t {
+ guint32 tid;
+ guint32 flags;
+ char *name;
+} smb2_tid_info_t;
+
/* Structure to keep track of conversations and the hash tables.
* There is one such structure for each conversation.
*/
@@ -54,6 +64,7 @@ typedef struct _smb2_conv_info_t {
/* these two tables are used to match requests with responses */
GHashTable *unmatched;
GHashTable *matched;
+ GHashTable *tids;
} smb2_conv_info_t;
/* This structure contains information from the SMB2 header
@@ -63,6 +74,7 @@ typedef struct _smb2_conv_info_t {
typedef struct _smb2_info_t {
guint16 opcode;
guint32 status;
+ guint32 tid;
guint64 seqnum;
gboolean response; /* is this a response ? */
smb2_conv_info_t *conv;