diff options
author | Ronnie Sahlberg <ronnie_sahlberg@ozemail.com.au> | 2005-12-01 10:34:00 +0000 |
---|---|---|
committer | Ronnie Sahlberg <ronnie_sahlberg@ozemail.com.au> | 2005-12-01 10:34:00 +0000 |
commit | 1b2e68397aa341f0880325f0d5c3cfe2dd92b5ee (patch) | |
tree | 7e6b51716af3efb9218634cafc4fd0a5dadca6d0 /epan | |
parent | 646535de33e4a9a2cd70edba77b886653299ed97 (diff) |
start implementing an ioctl dispatcher for different ioctl functions
svn path=/trunk/; revision=16636
Diffstat (limited to 'epan')
-rw-r--r-- | epan/dissectors/packet-smb2.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/epan/dissectors/packet-smb2.c b/epan/dissectors/packet-smb2.c index aff24d65b3..46597a3745 100644 --- a/epan/dissectors/packet-smb2.c +++ b/epan/dissectors/packet-smb2.c @@ -567,6 +567,7 @@ static const true_false_string tfs_flags_response = { static const value_string smb2_ioctl_vals[] = { + {0x0011c017, "DCE/RPC over named pipe"}, {0x00090000, "FSCTL_REQUEST_OPLOCK_LEVEL_1"}, {0x00090004, "FSCTL_REQUEST_OPLOCK_LEVEL_2"}, {0x00090008, "FSCTL_REQUEST_BATCH_OPLOCK"}, @@ -704,6 +705,7 @@ static const value_string smb2_ioctl_method_vals[] = { { 0, NULL } }; +static int dissect_smb2_ioctl_function(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, int offset, smb2_info_t *si) { proto_item *item=NULL; @@ -2440,9 +2442,23 @@ dissect_smb2_write_response(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *t } static void -dissect_smb2_ioctl_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, smb2_info_t *si) +dissect_smb2_ioctl_dcerpc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, smb2_info_t *si) +{ + dissect_file_data_dcerpc(tvb, pinfo, tree, offset, tvb_length_remaining(tvb, offset), si); + + return; +} + +static void +dissect_smb2_ioctl_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, smb2_info_t *si) { - dissect_file_data_dcerpc(tvb, pinfo, parent_tree, 0, tvb_length(tvb), si); + switch(si->ioctl_function){ + case 0x0011c017: /* NamedPipoe function:5 */ + dissect_smb2_ioctl_dcerpc(tvb, pinfo, tree, 0, si); + break; + default: + proto_tree_add_item(tree, hf_smb2_unknown, tvb, 0, tvb_length(tvb), TRUE); + } return; } |