diff options
Diffstat (limited to 'epan/dissectors/packet-uasip.c')
-rw-r--r-- | epan/dissectors/packet-uasip.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/epan/dissectors/packet-uasip.c b/epan/dissectors/packet-uasip.c index 514f282be9..44439757c0 100644 --- a/epan/dissectors/packet-uasip.c +++ b/epan/dissectors/packet-uasip.c @@ -257,22 +257,23 @@ static void _dissect_uasip(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, #endif } -static void dissect_uasip(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) +static int dissect_uasip(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_) { if (use_proxy_ipaddr) { if (memcmp((pinfo->src).data, proxy_ipaddr, sizeof(proxy_ipaddr)) == 0) { _dissect_uasip(tvb, pinfo, tree, SYS_TO_TERM); - return; + return tvb_captured_length(tvb); } else if (memcmp((pinfo->dst).data, proxy_ipaddr, sizeof(proxy_ipaddr)) == 0) { _dissect_uasip(tvb, pinfo, tree, TERM_TO_SYS); - return; + return tvb_captured_length(tvb); } } _dissect_uasip(tvb, pinfo, tree, DIR_UNKNOWN); + return tvb_captured_length(tvb); } void proto_register_uasip(void) @@ -444,7 +445,7 @@ void proto_register_uasip(void) }; proto_uasip = proto_register_protocol("UA/SIP Protocol", "UASIP", "uasip"); - uasip_handle = register_dissector("uasip", dissect_uasip, proto_uasip); + uasip_handle = new_register_dissector("uasip", dissect_uasip, proto_uasip); proto_register_field_array(proto_uasip, hf_uasip, array_length(hf_uasip)); proto_register_subtree_array(ett, array_length(ett)); |