diff options
author | Guy Harris <guy@alum.mit.edu> | 2001-11-18 01:46:51 +0000 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2001-11-18 01:46:51 +0000 |
commit | c211cb9da92fcbab67d8c4f12eb6aed0c070ffc7 (patch) | |
tree | f404c398a85d9856ec735954aa13a8298d8a2e5d /smb.h | |
parent | a2993889aa07bce150a4371cdec56967c89de728 (diff) |
Have only the request and response frame numbers, and a "void *", in an
"smb_saved_info_t". Put all the information needed to dissect NT
Transaction replies, Transaction2 replies, or Transaction replies into
separate data structures, allocated separately, and put a pointer to
that data structure in the "void *" in question.
Use the return value of "dissect_pipe_smb()" and
"dissect_mailslot_smb()" to control whether to display as data the stuff
those routines were asked to dissect.
If we've seen a request before, but its "smb_saved_info_t" isn't in the
"matched" hash table, look in the "unmatched" hash table - perhaps we
haven't seen the reply yet.
svn path=/trunk/; revision=4216
Diffstat (limited to 'smb.h')
-rw-r--r-- | smb.h | 46 |
1 files changed, 23 insertions, 23 deletions
@@ -2,7 +2,7 @@ * Defines for smb packet dissection * Copyright 1999, Richard Sharpe <rsharpe@ns.aus.com> * - * $Id: smb.h,v 1.19 2001/11/16 07:56:28 guy Exp $ + * $Id: smb.h,v 1.20 2001/11/18 01:46:51 guy Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -628,36 +628,36 @@ #define SMB_LMapi_UserPasswordSet 0x0073 /* - * One of these data structures is allocated for a transaction or - * transaction2 request; it keeps track of all information that's - * available in the request but not the reply and that's needed in - * order to dissect the reply, as well as the frame number of the - * request. + * The information we need to save about a Transaction request in order + * to dissect the reply; this includes information for use by the + * Remote API and Mailslot dissectors. + * XXX - have an additional data structure hung off of this by the + * subdissectors? */ -struct smb_request_val { - guint16 last_lanman_cmd; - guchar *last_param_descrip; /* Keep these descriptors around */ - guchar *last_data_descrip; - guchar *last_aux_data_descrip; - int last_level; -}; - -#define TRANSACTION_PIPE 0x01 -#define TRANSACTION_MAILSLOT 0x02 +typedef struct { + int subcmd; + int trans_subcmd; + guint16 lanman_cmd; + guchar *param_descrip; /* Keep these descriptors around */ + guchar *data_descrip; + guchar *aux_data_descrip; + int info_level; +} smb_transact_info_t; +/* + * Subcommand type. + */ +#define TRANSACTION_PIPE 0 +#define TRANSACTION_MAILSLOT 1 typedef struct smb_info { int cmd, mid; + gboolean unicode; /* Are strings in this SMB Unicode? */ + gboolean request; /* Is this a request? */ guint32 frame_req, frame_res; gboolean unidir; - int subcmd; - int trans_subcmd; - int info_level; int info_count; - - struct smb_request_val *request_val; - gboolean unicode; /* Are strings in this SMB Unicode? */ - gboolean request; /* Is this a request? */ + void *extra_info; /* extra info for transactions */ } smb_info_t; #endif |