From 7c3b0a0d6d82fc27a103e7c93e89b5c77da56a58 Mon Sep 17 00:00:00 2001 From: sahlberg Date: Sat, 12 Nov 2005 07:45:01 +0000 Subject: 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 --- epan/dissectors/packet-smb2.h | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'epan/dissectors/packet-smb2.h') 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; -- cgit v1.2.3