diff options
author | Michael Mann <mmann78@netscape.net> | 2013-11-09 17:46:28 +0000 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2013-11-09 17:46:28 +0000 |
commit | 8081cf1d90397cbbb4404f9720595e1537ed5e14 (patch) | |
tree | 353220f46e08be1f0020603538f501b65bea8f3b /epan/dissectors/packet-selfm.c | |
parent | c9b2ee3768abb730b49fc4fc779e77578a1c4971 (diff) |
Add data parameter to tcp_dissect_pdus() as well as convert it to using "new" style dissectors.
Now that "bytes consumed" can be determined, should tcp_dissect_pdus() take advantage of that?
Should tcp_dissect_pdus return length (bytes consumed)? There are many dissectors that just call tcp_dissect_pdus() then return tvb_length(tvb). Seems like that could all be rolled into one.
svn path=/trunk/; revision=53198
Diffstat (limited to 'epan/dissectors/packet-selfm.c')
-rw-r--r-- | epan/dissectors/packet-selfm.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/epan/dissectors/packet-selfm.c b/epan/dissectors/packet-selfm.c index 441df61e5a..d491500714 100644 --- a/epan/dissectors/packet-selfm.c +++ b/epan/dissectors/packet-selfm.c @@ -2247,8 +2247,8 @@ dissect_fastser_frame(tvbuff_t *tvb, proto_tree *tree, packet_info *pinfo, int o /* Code to dissect SEL Fast Message Protocol packets */ /* Will call other sub-dissectors, as needed */ /******************************************************************************************************/ -static void -dissect_selfm(tvbuff_t *selfm_tvb, packet_info *pinfo, proto_tree *tree) +static int +dissect_selfm(tvbuff_t *selfm_tvb, packet_info *pinfo, proto_tree *tree, void* data _U_) { /* Set up structures needed to add the protocol subtree and manage it */ proto_item *selfm_item=NULL; @@ -2441,6 +2441,7 @@ dissect_selfm(tvbuff_t *selfm_tvb, packet_info *pinfo, proto_tree *tree) } /* remaining length > 0 */ } /* tree */ + return tvb_length(selfm_tvb); } /******************************************************************************************************/ @@ -2469,7 +2470,7 @@ get_selfm_len(packet_info *pinfo _U_, tvbuff_t *tvb, int offset _U_) /* Dissect (and possibly Re-assemble) SEL protocol payload data */ /******************************************************************************************************/ static gboolean -dissect_selfm_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) +dissect_selfm_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) { tvbuff_t *selfm_tvb; @@ -2492,7 +2493,7 @@ dissect_selfm_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat tcp_dissect_pdus(selfm_tvb, pinfo, tree, selfm_desegment, 2, - get_selfm_len, dissect_selfm); + get_selfm_len, dissect_selfm, data); return TRUE; } @@ -2501,7 +2502,7 @@ dissect_selfm_tcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *dat /* Dissect "simple" SEL protocol payload (no TCP re-assembly) */ /******************************************************************************************************/ static gboolean -dissect_selfm_simple(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) +dissect_selfm_simple(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) { gint length = tvb_length(tvb); @@ -2511,7 +2512,7 @@ dissect_selfm_simple(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void * return FALSE; } - dissect_selfm(tvb, pinfo, tree); + dissect_selfm(tvb, pinfo, tree, data); return TRUE; } |