aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/docsis/packet-macmgmt.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/docsis/packet-macmgmt.c')
-rw-r--r--plugins/docsis/packet-macmgmt.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/plugins/docsis/packet-macmgmt.c b/plugins/docsis/packet-macmgmt.c
index 6680dfce23..0285b6848c 100644
--- a/plugins/docsis/packet-macmgmt.c
+++ b/plugins/docsis/packet-macmgmt.c
@@ -143,8 +143,8 @@ static const value_string mgmt_type_vals[] = {
};
/* Dissection */
-static void
-dissect_macmgmt (tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree)
+static int
+dissect_macmgmt (tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, void* data _U_)
{
guint16 msg_len;
proto_item *mgt_hdr_it;
@@ -192,11 +192,10 @@ dissect_macmgmt (tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree)
msg_len = tvb_get_ntohs (tvb, 12);
payload_tvb = tvb_new_subset_length (tvb, 20, msg_len - 6);
- if (dissector_try_uint
- (docsis_mgmt_dissector_table, type, payload_tvb, pinfo, tree))
- return;
- else
+ if (!dissector_try_uint(docsis_mgmt_dissector_table, type, payload_tvb, pinfo, tree))
call_dissector (data_handle, payload_tvb, pinfo, tree);
+
+ return tvb_captured_length(tvb);
}
/* Register the protocol with Wireshark */
@@ -268,7 +267,7 @@ proto_register_docsis_mgmt (void)
proto_register_field_array (proto_docsis_mgmt, hf, array_length (hf));
proto_register_subtree_array (ett, array_length (ett));
- register_dissector ("docsis_mgmt", dissect_macmgmt, proto_docsis_mgmt);
+ new_register_dissector ("docsis_mgmt", dissect_macmgmt, proto_docsis_mgmt);
}
void