diff options
author | Michael Mann <mmann78@netscape.net> | 2013-11-25 16:04:57 +0000 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2013-11-25 16:04:57 +0000 |
commit | a9dd765d474264d86c9809f943fb872f29aa9b06 (patch) | |
tree | cc6f3db65a0eee0a790d7a35e5745ba364ceb1bf /epan/dissectors/packet-fcct.c | |
parent | d4c4e24351173085ba78ebdb461f15a9c2f96c5b (diff) |
Remove Fibre Channel specific fields from packet_info and just have the fc_hdr or fc_data_t structure passed between all necessary dissectors.
svn path=/trunk/; revision=53569
Diffstat (limited to 'epan/dissectors/packet-fcct.c')
-rw-r--r-- | epan/dissectors/packet-fcct.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/epan/dissectors/packet-fcct.c b/epan/dissectors/packet-fcct.c index 169c5bf474..11bd002df3 100644 --- a/epan/dissectors/packet-fcct.c +++ b/epan/dissectors/packet-fcct.c @@ -134,8 +134,8 @@ get_gs_server (guint8 gstype, guint8 gssubtype) } /* Code to actually dissect the packets */ -static void -dissect_fcct (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) +static int +dissect_fcct (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data) { /* Set up structures needed to add the protocol subtree and manage it */ @@ -208,12 +208,15 @@ dissect_fcct (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) } /* We do not change the starting offset for the next protocol in the * chain since the fc_ct header is common to the sub-protocols. + * Pass the fchdr* received from parent dissector through to sub-protocols */ next_tvb = tvb_new_subset_remaining (tvb, 0); - if (!dissector_try_uint (fcct_gserver_table, server, next_tvb, pinfo, - tree)) { + if (!dissector_try_uint_new(fcct_gserver_table, server, next_tvb, pinfo, + tree, TRUE, data)) { call_dissector (data_handle, next_tvb, pinfo, tree); } + + return tvb_length(tvb); } /* Register the protocol with Wireshark */ @@ -291,7 +294,7 @@ proto_reg_handoff_fcct (void) { dissector_handle_t fcct_handle; - fcct_handle = create_dissector_handle (dissect_fcct, proto_fcct); + fcct_handle = new_create_dissector_handle (dissect_fcct, proto_fcct); dissector_add_uint("fc.ftype", FC_FTYPE_FCCT, fcct_handle); data_handle = find_dissector ("data"); |