diff options
Diffstat (limited to 'epan/dissectors/packet-udld.c')
-rw-r--r-- | epan/dissectors/packet-udld.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/epan/dissectors/packet-udld.c b/epan/dissectors/packet-udld.c index 7e6f2ea569..866c3b99e6 100644 --- a/epan/dissectors/packet-udld.c +++ b/epan/dissectors/packet-udld.c @@ -97,8 +97,8 @@ static const value_string opcode_vals[] = { { 0, NULL } }; -static void -dissect_udld(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) +static int +dissect_udld(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_) { proto_item *ti; proto_tree *udld_tree = NULL; @@ -220,13 +220,14 @@ dissect_udld(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) proto_tree_add_item(tlv_tree, hf_udld_data, tvb, offset + 4, length - 4, ENC_NA); } else { - return; + return offset; } offset += length; } } call_dissector(data_handle, tvb_new_subset_remaining(tvb, offset), pinfo, udld_tree); + return tvb_captured_length(tvb); } void @@ -304,7 +305,7 @@ proto_reg_handoff_udld(void) dissector_handle_t udld_handle; data_handle = find_dissector("data"); - udld_handle = create_dissector_handle(dissect_udld, proto_udld); + udld_handle = new_create_dissector_handle(dissect_udld, proto_udld); dissector_add_uint("llc.cisco_pid", 0x0111, udld_handle); dissector_add_uint("chdlc.protocol", 0x0111, udld_handle); } |