aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-smb.h
diff options
context:
space:
mode:
authorBill Meier <wmeier@newsguy.com>2013-11-27 16:30:20 +0000
committerBill Meier <wmeier@newsguy.com>2013-11-27 16:30:20 +0000
commit04cdccdb83db2646843bb98a69775b8b37fa50fc (patch)
treea2abac419e94c4e478b3a868c422c55a8a2568a0 /epan/dissectors/packet-smb.h
parentd1daa67cabddadee5e30a6e4d12245fb1dbaffbf (diff)
- Create/use several extended value_strings
(sort associated value_string arrays as needed); - Use new VALUE_STRING_LIST mechanism/macros to create enums and value_string arrays for: WERR_errors, DOS_errors, SRV_errors, and HRD_errors; - Declare certain global value_string arrays as static (local) and use global extended value_strings to reference same; (e.g., ms_coiuntry_codes value_string_array) - Rename SMBE_... defs used in several different value_string arrays to prevent potential name collisions: ( e.g., for SRV_errors: SMBE_... ==> SMBE_SRV_...) Done for value_string arrays: DOS_errors, SRV_errors, HRD_errors; - WERR_errors value_string array: Note that WERR associated defs no longer exist in the latest samba doserr.h. (The WERR_errors defs were originally generated from the samba doserr.h). For now: WERR_errors kept as is. - ToDo: Fix PIDL-generated dcerpc dissectors to use NT_errors_ext and WERR_errors_ext extended value_strings. - Add editor modelines to a few files. - Make whitespace changes. svn path=/trunk/; revision=53614
Diffstat (limited to 'epan/dissectors/packet-smb.h')
-rw-r--r--epan/dissectors/packet-smb.h222
1 files changed, 91 insertions, 131 deletions
diff --git a/epan/dissectors/packet-smb.h b/epan/dissectors/packet-smb.h
index 59876d590e..73bcfe02a1 100644
--- a/epan/dissectors/packet-smb.h
+++ b/epan/dissectors/packet-smb.h
@@ -121,94 +121,36 @@ WS_DLL_PUBLIC value_string_ext nt_cmd_vals_ext;
#define SMB_ERRHRD 0x03 /* Hardware style error */
#define SMB_ERRCMD 0x04 /* Not an SMB format command */
-/* Error codes for the ERRSRV class */
-
-#define SMBE_error 1 /* Non specific error code */
-#define SMBE_badpw 2 /* Bad password */
-#define SMBE_badtype 3 /* reserved */
-#define SMBE_access 4 /* No permissions to do the requested operation */
-#define SMBE_invnid 5 /* tid invalid */
-#define SMBE_invnetname 6 /* Invalid servername */
-#define SMBE_invdevice 7 /* Invalid device */
-#define SMBE_qfull 49 /* Print queue full */
-#define SMBE_qtoobig 50 /* Queued item too big */
-#define SMBE_qeof 51 /* EOF in print queue dump */
-#define SMBE_invpfid 52 /* Invalid print file in smb_fid */
-#define SMBE_smbcmd 64 /* Unrecognised command */
-#define SMBE_srverror 65 /* smb server internal error */
-#define SMBE_filespecs 67 /* fid and pathname invalid combination */
-#define SMBE_badlink 68
-#define SMBE_badpermits 69 /* Access specified for a file is not valid */
-#define SMBE_badpid 70
-#define SMBE_setattrmode 71 /* attribute mode invalid */
-#define SMBE_paused 81 /* Message server paused */
-#define SMBE_msgoff 82 /* Not receiving messages */
-#define SMBE_noroom 83 /* No room for message */
-#define SMBE_rmuns 87 /* too many remote usernames */
-#define SMBE_timeout 88 /* operation timed out */
-#define SMBE_noresource 89 /* No resources currently available for request. */
-#define SMBE_toomanyuids 90 /* too many userids */
-#define SMBE_baduid 91 /* bad userid */
-#define SMBE_useMPX 250 /* temporarily unable to use raw mode, use MPX mode */
-#define SMBE_useSTD 251 /* temporarily unable to use raw mode, use standard mode */
-#define SMBE_contMPX 252 /* resume MPX mode */
-#define SMBE_badPW 253 /* Check this out ... */
-#define SMBE_nosupport 0xFFFF
-#define SMBE_unknownsmb 22 /* from NT 3.5 response */
-
-/* Error codes for the ERRHRD class */
-
-#define SMBE_nowrite 19 /* read only media */
-#define SMBE_badunit 20 /* Unknown device */
-#define SMBE_notready 21 /* Drive not ready */
-#define SMBE_badcmd 22 /* Unknown command */
-#define SMBE_data 23 /* Data (CRC) error */
-#define SMBE_badreq 24 /* Bad request structure length */
-#define SMBE_seek 25 /* Seek error */
-#define SMBE_badmedia 26 /* Unknown media type */
-#define SMBE_badsector 27 /* Sector not found */
-#define SMBE_nopaper 28 /* Printer out of paper */
-#define SMBE_write 29 /* Write fault */
-#define SMBE_read 30 /* Read fault */
-#define SMBE_general 31 /* General failure */
-#define SMBE_badshare 32 /* An open conflicts with an existing open */
-#define SMBE_lock 33 /* Lock conflict or invalid mode, or unlock of
- lock held by another process */
-#define SMBE_wrongdisk 34 /* The wrong disk was found in a drive */
-#define SMBE_FCBunavail 35 /* No FCBs are available to process request */
-#define SMBE_sharebufexc 36 /* A sharing buffer has been exceeded */
-#define SMBE_diskfull 39
-
/* used for SMB export object functionality */
typedef struct _smb_eo_t {
- guint smbversion;
- guint16 cmd;
- int tid,uid;
- guint fid;
- guint32 pkt_num;
- gchar *hostname;
- gchar *filename;
- int fid_type;
- gint64 end_of_file;
- gchar *content_type;
- guint32 payload_len;
+ guint smbversion;
+ guint16 cmd;
+ int tid,uid;
+ guint fid;
+ guint32 pkt_num;
+ gchar *hostname;
+ gchar *filename;
+ int fid_type;
+ gint64 end_of_file;
+ gchar *content_type;
+ guint32 payload_len;
const guint8 *payload_data;
- guint64 smb_file_offset;
- guint32 smb_chunk_len;
+ guint64 smb_file_offset;
+ guint32 smb_chunk_len;
} smb_eo_t;
-/* the information we need to keep around for NT transatcion commands */
+/* the information we need to keep around for NT transaction commands */
typedef struct {
- int subcmd;
- int fid_type;
+ int subcmd;
+ int fid_type;
guint32 ioctl_function;
} smb_nt_transact_info_t;
/* the information we need to keep around for transaction2 commands */
typedef struct {
- int subcmd;
- int info_level;
- gboolean resume_keys; /* if "return resume" keys set in T2 FIND_FIRST request */
+ int subcmd;
+ int info_level;
+ gboolean resume_keys; /* if "return resume" keys set in T2 FIND_FIRST request */
const char *name;
} smb_transact2_info_t;
@@ -224,7 +166,7 @@ typedef enum {
SMB_EI_NTI, /* smb_nt_transact_info_t * */
SMB_EI_TRI, /* smb_transact_info_t * */
SMB_EI_T2I, /* smb_transact2_info_t * */
- SMB_EI_TIDNAME, /* tid tracking char * */
+ SMB_EI_TIDNAME, /* tid tracking char * */
SMB_EI_FILEDATA, /* fid tracking */
SMB_EI_FILENAME, /* filename tracking */
SMB_EI_UID, /* smb_uid_t */
@@ -233,18 +175,20 @@ typedef enum {
SMB_EI_RENAMEDATA, /* rename data */
SMB_EI_DIALECTS /* negprot dialects */
} smb_extra_info_t;
+
typedef struct _smb_fid_into_t smb_fid_info_t;
+
typedef struct {
- guint32 frame_req, frame_res;
- nstime_t req_time;
- guint16 flags;
- guint8 cmd;
- void *extra_info;
- smb_extra_info_t extra_info_type;
+ guint32 frame_req, frame_res;
+ nstime_t req_time;
+ guint16 flags;
+ guint8 cmd;
+ void *extra_info;
+ smb_extra_info_t extra_info_type;
/* we save the fid in each transaction so that we can get fid filters
to match both request and response */
- gboolean fid_seen_in_request;
- guint16 fid;
+ gboolean fid_seen_in_request;
+ guint16 fid;
} smb_saved_info_t;
/*
@@ -255,16 +199,16 @@ typedef struct {
* subdissectors?
*/
typedef struct {
- int subcmd;
- int trans_subcmd;
- int function;
- /* Unification of fid variable type (was int) */
- guint16 fid;
- guint16 lanman_cmd;
- guchar *param_descrip; /* Keep these descriptors around */
- guchar *data_descrip;
- guchar *aux_data_descrip;
- int info_level;
+ int subcmd;
+ int trans_subcmd;
+ int function;
+ /* Unification of fid variable type (was int) */
+ guint16 fid;
+ guint16 lanman_cmd;
+ guchar *param_descrip; /* Keep these descriptors around */
+ guchar *data_descrip;
+ guchar *aux_data_descrip;
+ int info_level;
} smb_transact_info_t;
/*
@@ -281,20 +225,20 @@ typedef struct {
/* this is the structure which is associated with each conversation */
typedef struct conv_tables {
/* these two tables are used to match requests with responses */
- GHashTable *unmatched;
- GHashTable *matched;
+ GHashTable *unmatched;
+ GHashTable *matched;
/* This table keeps primary transact requests so secondaries can find
them */
- GHashTable *primaries;
+ GHashTable *primaries;
/* This table is used to track TID->services for a conversation */
- GHashTable *tid_service;
- gboolean raw_ntlmssp; /* Do extended security exc use raw ntlmssp */
+ GHashTable *tid_service;
+ gboolean raw_ntlmssp; /* Do extended security exc use raw ntlmssp */
/* track fid to fidstruct (filename/openframe/closeframe */
wmem_tree_t *fid_tree;
/* We'll use a GSL list instead */
- GSList *GSL_fid_info;
+ GSList *GSL_fid_info;
/* track tid to fidstruct (sharename/shareframe/unshareframe */
wmem_tree_t *tid_tree;
@@ -304,16 +248,16 @@ typedef struct conv_tables {
} conv_tables_t;
typedef struct smb_info {
- guint8 cmd;
- int tid, pid, uid, mid;
- guint32 nt_status;
+ guint8 cmd;
+ int tid, pid, uid, mid;
+ guint32 nt_status;
gboolean unicode; /* Are strings in this SMB Unicode? */
gboolean request; /* Is this a request? */
gboolean unidir;
- int info_level;
- int info_count;
+ int info_level;
+ int info_count;
smb_saved_info_t *sip; /* smb_saved_info_t, if any, for this */
- conv_tables_t *ct;
+ conv_tables_t *ct;
} smb_info_t;
/*
@@ -336,47 +280,50 @@ typedef struct _smb_rename_saved_info_t {
/* used for tracking lock data between lock request/response */
typedef struct _smb_lock_info_t {
- struct _smb_lock_info_t *next;
- guint16 pid;
- guint64 offset;
- guint64 length;
+ struct _smb_lock_info_t *next;
+ guint16 pid;
+ guint64 offset;
+ guint64 length;
} smb_lock_info_t;
+
typedef struct _smb_locking_saved_info_t {
- guint8 type;
- guint8 oplock_level;
- guint16 num_lock;
- guint16 num_unlock;
+ guint8 type;
+ guint8 oplock_level;
+ guint16 num_lock;
+ guint16 num_unlock;
smb_lock_info_t *locks;
smb_lock_info_t *unlocks;
} smb_locking_saved_info_t;
+
/* used for tracking fid/tid to filename/sharename openedframe closedframe */
typedef struct _smb_fid_saved_info_t {
- char *filename;
- guint32 create_flags;
- guint32 access_mask;
- guint32 file_attributes;
- guint32 share_access;
- guint32 create_options;
- guint32 create_disposition;
+ char *filename;
+ guint32 create_flags;
+ guint32 access_mask;
+ guint32 file_attributes;
+ guint32 share_access;
+ guint32 create_options;
+ guint32 create_disposition;
} smb_fid_saved_info_t;
+
struct _smb_fid_into_t {
- guint16 tid,fid;
+ guint16 tid,fid;
/* The end_of_file will store the last registered offset or
the reported end_of_file from the SMB protocol */
- gint64 end_of_file;
+ gint64 end_of_file;
/* These two were int */
- guint opened_in;
- guint closed_in;
- int type;
+ guint opened_in;
+ guint closed_in;
+ int type;
smb_fid_saved_info_t *fsi;
};
/* used for tracking tid to sharename openedframe closedframe */
typedef struct _smb_tid_into_t {
- int opened_in;
- int closed_in;
+ int opened_in;
+ int closed_in;
char *filename;
- int type;
+ int type;
} smb_tid_info_t;
@@ -440,3 +387,16 @@ extern int dissect_get_dfs_referral_data(tvbuff_t *tvb, packet_info *pinfo, prot
extern const gchar *tree_ip_str(packet_info *pinfo, guint16 cmd);
#endif
+
+/*
+ * Editor modelines - http://www.wireshark.org/tools/modelines.html
+ *
+ * Local variables:
+ * c-basic-offset: 8
+ * tab-width: 8
+ * indent-tabs-mode: t
+ * End:
+ *
+ * vi: set shiftwidth=8 tabstop=8 noexpandtab:
+ * :indentSize=8:tabSize=8:noTabs=false:
+ */