aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-smb.c
diff options
context:
space:
mode:
authorsahlberg <sahlberg@f5534014-38df-0310-8fa8-9805f1628bb7>2006-02-07 08:48:51 +0000
committersahlberg <sahlberg@f5534014-38df-0310-8fa8-9805f1628bb7>2006-02-07 08:48:51 +0000
commitf9badc2f661b758c3d9a90ee74a1fdb88c77114b (patch)
tree6df954317c63f8270ae2f1bfd80e35c8c72f2972 /epan/dissectors/packet-smb.c
parentf760481c94228d2b258e8def5e38989286de8d35 (diff)
add dissection of
SMB/SetFileInfo level 1023 SMB2/SetInfo/FILE_INFO level 0x17 FILE_PIPE_INFO infolevel git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@17195 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan/dissectors/packet-smb.c')
-rw-r--r--epan/dissectors/packet-smb.c32
1 files changed, 31 insertions, 1 deletions
diff --git a/epan/dissectors/packet-smb.c b/epan/dissectors/packet-smb.c
index 17b8134079..04fd3bd2e6 100644
--- a/epan/dissectors/packet-smb.c
+++ b/epan/dissectors/packet-smb.c
@@ -629,6 +629,7 @@ static int hf_smb_unix_find_file_nextoffset = -1;
static int hf_smb_unix_find_file_resumekey = -1;
static int hf_smb_network_unknown = -1;
static int hf_smb_disposition_delete_on_close = -1;
+static int hf_smb_pipe_info_flag = -1;
static int hf_smb_mode = -1;
static int hf_smb_attribute = -1;
static int hf_smb_reparse_tag = -1;
@@ -1297,6 +1298,11 @@ static const true_false_string tfs_disposition_delete_on_close = {
"Normal access, do not delete on close"
};
+static const true_false_string tfs_pipe_info_flag = {
+ "SET NAMED PIPE mode",
+ "Clear NAMED PIPE mode"
+};
+
static const value_string da_access_vals[] = {
{ 0, "Open for reading"},
@@ -11178,6 +11184,23 @@ dissect_disposition_info(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree
return offset;
}
+int
+dissect_sfi_SMB_FILE_PIPE_INFO(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
+ int offset, guint16 *bcp, gboolean *trunc)
+{
+ smb_info_t *si = pinfo->private_data;
+
+ DISSECTOR_ASSERT(si);
+
+ /* pipe info flag */
+ CHECK_BYTE_COUNT_SUBR(1);
+ proto_tree_add_item(tree, hf_smb_pipe_info_flag, tvb, offset, 1, TRUE);
+ COUNT_BYTES_SUBR(1);
+
+ *trunc = FALSE;
+ return offset;
+}
+
/*dissect the data block for TRANS2_QUERY_PATH_INFORMATION and
TRANS2_QUERY_FILE_INFORMATION*/
static int
@@ -11366,11 +11389,14 @@ dissect_spi_loi_vals(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree,
offset = dissect_disposition_info(tvb, pinfo, tree, offset, bcp,
&trunc);
break;
+ case 1023: /* Set Pipe Info */
+ offset = dissect_sfi_SMB_FILE_PIPE_INFO(tvb, pinfo, tree, offset, bcp,
+ &trunc);
+ break;
case 1014:
case 1016:
case 1019:
case 1020:
- case 1023:
case 1025:
case 1029:
case 1032:
@@ -17776,6 +17802,10 @@ proto_register_smb(void)
{ "Delete on close", "smb.disposition.delete_on_close", FT_BOOLEAN, 8,
TFS(&tfs_disposition_delete_on_close), 0x01, "", HFILL }},
+ { &hf_smb_pipe_info_flag,
+ { "Pipe Info", "smb.pipe_info_flag", FT_BOOLEAN, 8,
+ TFS(&tfs_pipe_info_flag), 0x01, "", HFILL }},
+
};
static gint *ett[] = {