aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-idp.c
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/packet-idp.c')
-rw-r--r--epan/dissectors/packet-idp.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/epan/dissectors/packet-idp.c b/epan/dissectors/packet-idp.c
index 598a8c73a9..01a520724c 100644
--- a/epan/dissectors/packet-idp.c
+++ b/epan/dissectors/packet-idp.c
@@ -75,8 +75,8 @@ static const value_string idp_socket_vals[] = {
{ 0, NULL }
};
-static void
-dissect_idp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_idp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
proto_tree *idp_tree;
proto_item *ti;
@@ -122,11 +122,12 @@ dissect_idp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
/*
* Hand off to the dissector for the packet type.
*/
- if (dissector_try_uint(idp_type_dissector_table, type, next_tvb,
- pinfo, tree))
- return;
-
- call_dissector(data_handle, next_tvb, pinfo, tree);
+ if (!dissector_try_uint(idp_type_dissector_table, type, next_tvb,
+ pinfo, tree))
+ {
+ call_dissector(data_handle, next_tvb, pinfo, tree);
+ }
+ return tvb_captured_length(tvb);
}
void
@@ -205,7 +206,7 @@ proto_reg_handoff_idp(void)
{
dissector_handle_t idp_handle;
- idp_handle = create_dissector_handle(dissect_idp, proto_idp);
+ idp_handle = new_create_dissector_handle(dissect_idp, proto_idp);
dissector_add_uint("ethertype", ETHERTYPE_XNS_IDP, idp_handle);
dissector_add_uint("chdlc.protocol", ETHERTYPE_XNS_IDP, idp_handle);