aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2015-11-14 09:23:33 -0500
committerMichael Mann <mmann78@netscape.net>2015-11-14 21:54:27 +0000
commit28ea58251c04562cc0670e57bf073dc6966e73e6 (patch)
treeabe57292f17b280056a73ee7cfdc94abdcaaaaf3
parent13101020e12eb21e8464a3c4eb4fc2fe51409235 (diff)
register_dissector -> new_register_dissector
Picking off "easy" dissectors that only have one or two exit points at most. This concludes a "first pass" over the dissector directory. Change-Id: If5ce5484214be50fe541cba478da1de62e354297 Reviewed-on: https://code.wireshark.org/review/11830 Petri-Dish: Michael Mann <mmann78@netscape.net> Reviewed-by: Michael Mann <mmann78@netscape.net>
-rw-r--r--epan/dissectors/packet-pktap.c9
-rw-r--r--epan/dissectors/packet-ppcap.c7
-rw-r--r--epan/dissectors/packet-ppp.c40
-rw-r--r--epan/dissectors/packet-pw-cesopsn.c9
-rw-r--r--epan/dissectors/packet-pw-common.c36
-rw-r--r--epan/dissectors/packet-pw-eth.c7
-rw-r--r--epan/dissectors/packet-pw-satop.c8
-rw-r--r--epan/dissectors/packet-q2931.c9
-rw-r--r--epan/dissectors/packet-q931.c35
-rw-r--r--epan/dissectors/packet-q932.c8
-rw-r--r--epan/dissectors/packet-q933.c7
-rw-r--r--epan/dissectors/packet-raknet.c7
-rw-r--r--epan/dissectors/packet-rdm.c7
-rw-r--r--epan/dissectors/packet-retix-bpdu.c17
-rw-r--r--epan/dissectors/packet-rfc2190.c7
-rw-r--r--epan/dissectors/packet-rfid-felica.c23
-rw-r--r--epan/dissectors/packet-rfid-mifare.c7
-rw-r--r--epan/dissectors/packet-rlc-lte.c5
-rw-r--r--epan/dissectors/packet-rmp.c183
-rw-r--r--epan/dissectors/packet-rpc.c8
-rw-r--r--epan/dissectors/packet-rpl.c8
-rw-r--r--epan/dissectors/packet-rtcp.c13
-rw-r--r--epan/dissectors/packet-rtp-events.c7
-rw-r--r--epan/dissectors/packet-rtp-midi.c16
-rw-r--r--epan/dissectors/packet-rtp.c21
-rw-r--r--epan/dissectors/packet-rtsp.c7
-rw-r--r--epan/dissectors/packet-sccp.c8
-rw-r--r--epan/dissectors/packet-sctp.c8
-rw-r--r--epan/dissectors/packet-sdh.c7
-rw-r--r--epan/dissectors/packet-sdp.c8
-rw-r--r--epan/dissectors/packet-ses.c9
-rw-r--r--epan/dissectors/packet-sgsap.c9
-rw-r--r--epan/dissectors/packet-sipfrag.c6
-rw-r--r--epan/dissectors/packet-sita.c7
-rw-r--r--epan/dissectors/packet-smb-browse.c25
-rw-r--r--epan/dissectors/packet-smb-logon.c7
-rw-r--r--epan/dissectors/packet-smb.c9
-rw-r--r--epan/dissectors/packet-sna.c14
-rw-r--r--epan/dissectors/packet-sndcp-xid.c7
-rw-r--r--epan/dissectors/packet-srp.c10
-rw-r--r--epan/dissectors/packet-sscf-nni.c7
-rw-r--r--epan/dissectors/packet-sstp.c9
-rw-r--r--epan/dissectors/packet-stanag4607.c11
-rw-r--r--epan/dissectors/packet-sua.c20
-rw-r--r--epan/dissectors/packet-sysex.c183
-rw-r--r--epan/dissectors/packet-telnet.c9
-rw-r--r--epan/dissectors/packet-thrift.c2
-rw-r--r--epan/dissectors/packet-tnef.c10
-rw-r--r--epan/dissectors/packet-tpkt.c7
-rw-r--r--epan/dissectors/packet-tr.c7
-rw-r--r--epan/dissectors/packet-trmac.c7
-rw-r--r--epan/dissectors/packet-tte-pcf.c9
-rw-r--r--epan/dissectors/packet-turbocell.c7
-rw-r--r--epan/dissectors/packet-ua.c10
-rw-r--r--epan/dissectors/packet-uaudp.c15
-rw-r--r--epan/dissectors/packet-udp.c7
-rw-r--r--epan/dissectors/packet-usb.c7
-rw-r--r--epan/dissectors/packet-uts.c7
-rw-r--r--epan/dissectors/packet-v52.c7
-rw-r--r--epan/dissectors/packet-v5dl.c10
-rw-r--r--epan/dissectors/packet-v5ef.c11
-rw-r--r--epan/dissectors/packet-vp8.c8
-rw-r--r--epan/dissectors/packet-wbxml.c14
-rw-r--r--epan/dissectors/packet-wfleet-hdlc.c8
-rw-r--r--epan/dissectors/packet-wsp.c14
-rw-r--r--epan/dissectors/packet-wtp.c14
-rw-r--r--epan/dissectors/packet-x25.c14
-rw-r--r--epan/dissectors/packet-zbee-zcl-general.c8
-rw-r--r--epan/dissectors/packet-zbee-zcl-ha.c16
-rw-r--r--epan/dissectors/packet-zbee-zcl-meas-sensing.c32
70 files changed, 586 insertions, 549 deletions
diff --git a/epan/dissectors/packet-pktap.c b/epan/dissectors/packet-pktap.c
index 6825cdb629..f1a3e95f97 100644
--- a/epan/dissectors/packet-pktap.c
+++ b/epan/dissectors/packet-pktap.c
@@ -127,8 +127,8 @@ capture_pktap(const guchar *pd, int len, packet_counts *ld)
ld->other++;
}
-static void
-dissect_pktap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_pktap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
proto_tree *pktap_tree = NULL;
proto_item *ti = NULL;
@@ -151,7 +151,7 @@ dissect_pktap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
if (pkt_len < MIN_PKTAP_HDR_LEN) {
proto_tree_add_expert(tree, pinfo, &ei_pktap_hdrlen_too_short,
tvb, offset, 4);
- return;
+ return tvb_captured_length(tvb);
}
offset += 4;
@@ -205,6 +205,7 @@ dissect_pktap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
dissector_try_uint(wtap_encap_dissector_table,
wtap_pcap_encap_to_wtap_encap(dlt), next_tvb, pinfo, tree);
}
+ return tvb_captured_length(tvb);
}
void
@@ -277,7 +278,7 @@ proto_register_pktap(void)
expert_pktap = expert_register_protocol(proto_pktap);
expert_register_field_array(expert_pktap, ei, array_length(ei));
- pktap_handle = register_dissector("pktap", dissect_pktap, proto_pktap);
+ pktap_handle = new_register_dissector("pktap", dissect_pktap, proto_pktap);
}
void
diff --git a/epan/dissectors/packet-ppcap.c b/epan/dissectors/packet-ppcap.c
index bdacc8c250..48a3b7397f 100644
--- a/epan/dissectors/packet-ppcap.c
+++ b/epan/dissectors/packet-ppcap.c
@@ -142,8 +142,8 @@ static int dissect_ppcap_payload_data(tvbuff_t *, packet_info *, proto_tree *, i
/*Dissecting the function PPCAP */
-static void
-dissect_ppcap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_ppcap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
proto_item *ti;
proto_tree *ppcap_tree, *ppcap_tree1;
@@ -195,6 +195,7 @@ dissect_ppcap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
break;
}
}
+ return tvb_captured_length(tvb);
}
@@ -657,7 +658,7 @@ module_t *ppcap_module;
proto_ppcap = proto_register_protocol("Proprietary PCAP", "PPCAP", "ppcap");
proto_register_field_array(proto_ppcap , hf , array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- register_dissector("ppcap", dissect_ppcap, proto_ppcap);
+ new_register_dissector("ppcap", dissect_ppcap, proto_ppcap);
ppcap_module = prefs_register_protocol(proto_ppcap, proto_reg_handoff_ppcap);
prefs_register_enum_preference(ppcap_module,"rev_doc","PPCAP, Select the document","Select Document",&global_ppcap_rev_doc,rev_doc,TRUE);
diff --git a/epan/dissectors/packet-ppp.c b/epan/dissectors/packet-ppp.c
index 01612b2d68..dccaff23d1 100644
--- a/epan/dissectors/packet-ppp.c
+++ b/epan/dissectors/packet-ppp.c
@@ -1605,7 +1605,7 @@ static const ip_tcp_opt bap_opts[] = {
#define N_BAP_OPTS (sizeof bap_opts / sizeof bap_opts[0])
-static void dissect_ppp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
+static int dissect_ppp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data);
static const value_string pap_vals[] = {
{CONFREQ, "Authenticate-Request"},
@@ -3983,11 +3983,12 @@ dissect_ppp_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
}
}
-static void
-dissect_lcp_options(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_lcp_options(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
dissect_ip_tcp_options(tvb, 0, tvb_reported_length(tvb), lcp_opts,
N_LCP_OPTS, -1, &PPP_OPT_TYPES, &ei_ppp_opt_len_invalid, pinfo, tree, NULL, NULL);
+ return tvb_captured_length(tvb);
}
/*
@@ -4768,25 +4769,24 @@ dissect_mp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
hdrlen = mp_short_seqno ? 2 : 4;
if (tvb_reported_length_remaining(tvb, hdrlen) > 0) {
next_tvb = tvb_new_subset_remaining(tvb, hdrlen);
- dissect_ppp(next_tvb, pinfo, tree);
+ dissect_ppp(next_tvb, pinfo, tree, NULL);
}
}
/*
* Handles PPP without HDLC framing, just a protocol field (RFC 1661).
*/
-static void
-dissect_ppp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_ppp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
- proto_item *ti = NULL;
- proto_tree *fh_tree = NULL;
+ proto_item *ti;
+ proto_tree *fh_tree;
- if (tree) {
- ti = proto_tree_add_item(tree, proto_ppp, tvb, 0, -1, ENC_NA);
- fh_tree = proto_item_add_subtree(ti, ett_ppp);
- }
+ ti = proto_tree_add_item(tree, proto_ppp, tvb, 0, -1, ENC_NA);
+ fh_tree = proto_item_add_subtree(ti, ett_ppp);
dissect_ppp_common(tvb, pinfo, tree, fh_tree, ti, 0);
+ return tvb_captured_length(tvb);
}
static void
@@ -4829,16 +4829,15 @@ dissect_ppp_hdlc_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
* Handles link-layer encapsulations where the frame might be
* a PPP in HDLC-like Framing frame (RFC 1662) or a Cisco HDLC frame.
*/
-static void
-dissect_ppp_hdlc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_ppp_hdlc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
guint8 byte0;
byte0 = tvb_get_guint8(tvb, 0);
if (byte0 == CHDLC_ADDR_UNICAST || byte0 == CHDLC_ADDR_MULTICAST) {
/* Cisco HDLC encapsulation */
- call_dissector(chdlc_handle, tvb, pinfo, tree);
- return;
+ return call_dissector(chdlc_handle, tvb, pinfo, tree);
}
/*
@@ -4865,6 +4864,7 @@ dissect_ppp_hdlc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
}
dissect_ppp_hdlc_common(tvb, pinfo, tree);
+ return tvb_captured_length(tvb);
}
static tvbuff_t*
@@ -5073,7 +5073,7 @@ dissect_ppp_usb( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data
next_tvb = tvb_new_subset_remaining(tvb, 2);
else
next_tvb = tvb_new_subset_remaining(tvb, 3);
- dissect_ppp(next_tvb, pinfo, tree);
+ dissect_ppp(next_tvb, pinfo, tree, data);
} else if (tvb_get_guint8(tvb, 0) == 0x7e) {
/* Well, let's guess that since the 1st byte is 0x7e that it really is
* a PPP frame, and the address and control bytes are compressed (NULL)
@@ -5419,9 +5419,9 @@ proto_register_ppp(void)
ppp_subdissector_table = register_dissector_table("ppp.protocol",
"PPP protocol", FT_UINT16, BASE_HEX, DISSECTOR_TABLE_NOT_ALLOW_DUPLICATE);
- register_dissector("ppp_hdlc", dissect_ppp_hdlc, proto_ppp);
- register_dissector("ppp_lcp_options", dissect_lcp_options, proto_ppp);
- register_dissector("ppp", dissect_ppp, proto_ppp);
+ new_register_dissector("ppp_hdlc", dissect_ppp_hdlc, proto_ppp);
+ new_register_dissector("ppp_lcp_options", dissect_lcp_options, proto_ppp);
+ new_register_dissector("ppp", dissect_ppp, proto_ppp);
/* Register the preferences for the ppp protocol */
ppp_module = prefs_register_protocol(proto_ppp, NULL);
diff --git a/epan/dissectors/packet-pw-cesopsn.c b/epan/dissectors/packet-pw-cesopsn.c
index 354825edd8..346b2c2a0e 100644
--- a/epan/dissectors/packet-pw-cesopsn.c
+++ b/epan/dissectors/packet-pw-cesopsn.c
@@ -378,10 +378,10 @@ void dissect_pw_cesopsn_mpls( tvbuff_t * tvb_original, packet_info * pinfo, prot
static
-void dissect_pw_cesopsn_udp( tvbuff_t * tvb_original, packet_info * pinfo, proto_tree * tree)
+int dissect_pw_cesopsn_udp( tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, void* data _U_)
{
- dissect_pw_cesopsn(tvb_original,pinfo,tree,PWC_DEMUX_UDP);
- return;
+ dissect_pw_cesopsn(tvb,pinfo,tree,PWC_DEMUX_UDP);
+ return tvb_captured_length(tvb);
}
@@ -444,8 +444,7 @@ void proto_register_pw_cesopsn(void)
proto_register_subtree_array(ett_array, array_length(ett_array));
expert_pwcesopsn = expert_register_protocol(proto);
expert_register_field_array(expert_pwcesopsn, ei, array_length(ei));
- register_dissector("pw_cesopsn_udp", dissect_pw_cesopsn_udp, proto);
- return;
+ new_register_dissector("pw_cesopsn_udp", dissect_pw_cesopsn_udp, proto);
}
diff --git a/epan/dissectors/packet-pw-common.c b/epan/dissectors/packet-pw-common.c
index 4e87f105a0..96dc6ec78e 100644
--- a/epan/dissectors/packet-pw-common.c
+++ b/epan/dissectors/packet-pw-common.c
@@ -90,25 +90,21 @@ static int hf_padding_len = -1;
static dissector_handle_t dh_data;
static
-void dissect_pw_padding(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree)
+int dissect_pw_padding(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, void* data _U_)
{
- /* do not touch columns */
- if (tree)
- {
- gint size;
- proto_item* item;
- size = tvb_reported_length_remaining(tvb, 0);
- item = proto_tree_add_item(tree, proto_pw_padding, tvb, 0, -1, ENC_NA);
- pwc_item_append_text_n_items(item,size,"byte");
- {
- proto_tree* tree_p;
- tree_p = proto_item_add_subtree(item, ett);
- call_dissector(dh_data, tvb, pinfo, tree_p);
- item = proto_tree_add_int(tree_p, hf_padding_len, tvb, 0, 0, size);
- PROTO_ITEM_SET_HIDDEN(item); /*allow filtering*/
- }
- }
- return;
+ gint size;
+ proto_item* item;
+ proto_tree* tree_p;
+ size = tvb_reported_length_remaining(tvb, 0);
+ item = proto_tree_add_item(tree, proto_pw_padding, tvb, 0, -1, ENC_NA);
+ pwc_item_append_text_n_items(item,size,"byte");
+ tree_p = proto_item_add_subtree(item, ett);
+
+ call_dissector(dh_data, tvb, pinfo, tree_p);
+ item = proto_tree_add_int(tree_p, hf_padding_len, tvb, 0, 0, size);
+ PROTO_ITEM_SET_HIDDEN(item); /*allow filtering*/
+
+ return tvb_captured_length(tvb);
}
void proto_register_pw_padding(void)
@@ -124,15 +120,13 @@ void proto_register_pw_padding(void)
proto_pw_padding = proto_register_protocol("Pseudowire Padding","PW Padding","pw.padding");
proto_register_field_array(proto_pw_padding, hfpadding, array_length(hfpadding));
proto_register_subtree_array(ett_array, array_length(ett_array));
- register_dissector("pw_padding", dissect_pw_padding, proto_pw_padding);
- return;
+ new_register_dissector("pw_padding", dissect_pw_padding, proto_pw_padding);
}
void proto_reg_handoff_pw_padding(void)
{
dh_data = find_dissector("data");
- return;
}
/*
diff --git a/epan/dissectors/packet-pw-eth.c b/epan/dissectors/packet-pw-eth.c
index 3a8238e85f..ec812c1495 100644
--- a/epan/dissectors/packet-pw-eth.c
+++ b/epan/dissectors/packet-pw-eth.c
@@ -130,8 +130,8 @@ looks_like_plain_eth(tvbuff_t *tvb _U_)
return FALSE;
}
-static void
-dissect_pw_eth_heuristic(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_pw_eth_heuristic(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
guint8 first_nibble = (tvb_get_guint8(tvb, 0) >> 4) & 0x0F;
@@ -141,6 +141,7 @@ dissect_pw_eth_heuristic(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
call_dissector(pw_eth_handle_cw, tvb, pinfo, tree);
else
call_dissector(pw_eth_handle_nocw, tvb, pinfo, tree);
+ return tvb_captured_length(tvb);
}
void
@@ -191,7 +192,7 @@ proto_register_pw_eth(void)
"pwethheuristic");
proto_register_field_array(proto_pw_eth_cw, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- register_dissector("pw_eth_heuristic", dissect_pw_eth_heuristic,
+ new_register_dissector("pw_eth_heuristic", dissect_pw_eth_heuristic,
proto_pw_eth_heuristic);
}
diff --git a/epan/dissectors/packet-pw-satop.c b/epan/dissectors/packet-pw-satop.c
index eb989cb097..9c88cc1ef2 100644
--- a/epan/dissectors/packet-pw-satop.c
+++ b/epan/dissectors/packet-pw-satop.c
@@ -391,10 +391,10 @@ void dissect_pw_satop_mpls( tvbuff_t * tvb_original, packet_info * pinfo, proto_
static
-void dissect_pw_satop_udp( tvbuff_t * tvb_original, packet_info * pinfo, proto_tree * tree)
+int dissect_pw_satop_udp( tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, void* data _U_)
{
- dissect_pw_satop(tvb_original,pinfo,tree,PWC_DEMUX_UDP);
- return;
+ dissect_pw_satop(tvb,pinfo,tree,PWC_DEMUX_UDP);
+ return tvb_captured_length(tvb);
}
@@ -460,7 +460,7 @@ void proto_register_pw_satop(void)
proto_register_subtree_array(ett_array, array_length(ett_array));
expert_pwsatop = expert_register_protocol(proto);
expert_register_field_array(expert_pwsatop, ei, array_length(ei));
- register_dissector("pw_satop_udp", dissect_pw_satop_udp, proto);
+ new_register_dissector("pw_satop_udp", dissect_pw_satop_udp, proto);
return;
}
diff --git a/epan/dissectors/packet-q2931.c b/epan/dissectors/packet-q2931.c
index d6e479a6a6..7dd1c020e6 100644
--- a/epan/dissectors/packet-q2931.c
+++ b/epan/dissectors/packet-q2931.c
@@ -1866,8 +1866,8 @@ dissect_q2931_ie(tvbuff_t *tvb, packet_info* pinfo, int offset, int len, proto_t
}
}
-static void
-dissect_q2931(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_q2931(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
int offset = 0;
proto_tree *q2931_tree = NULL;
@@ -1952,7 +1952,7 @@ dissect_q2931(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
dissect_q2931_ie(tvb, pinfo, offset, info_element_len,
q2931_tree, info_element, info_element_ext);
}
-#if 0 /* XXX: Is codeset & etc supoosed to be used somehow ? */
+#if 0 /* XXX: Is codeset & etc supposed to be used somehow ? */
if (non_locking_shift)
codeset = 0;
/*
@@ -1977,6 +1977,7 @@ dissect_q2931(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
#endif
offset += 1 + 1 + 2 + info_element_len;
}
+ return tvb_captured_length(tvb);
}
void
@@ -2561,7 +2562,7 @@ proto_register_q2931(void)
expert_q2931 = expert_register_protocol(proto_q2931);
expert_register_field_array(expert_q2931, ei, array_length(ei));
- register_dissector("q2931", dissect_q2931, proto_q2931);
+ new_register_dissector("q2931", dissect_q2931, proto_q2931);
}
/*
diff --git a/epan/dissectors/packet-q931.c b/epan/dissectors/packet-q931.c
index 50463c5f0b..9d8e751649 100644
--- a/epan/dissectors/packet-q931.c
+++ b/epan/dissectors/packet-q931.c
@@ -3146,10 +3146,11 @@ dissect_q931_tpkt_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void
return TRUE;
}
-static void
-dissect_q931_tpkt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_q931_tpkt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
dissect_q931_tpkt_heur(tvb, pinfo, tree, NULL);
+ return tvb_captured_length(tvb);
}
static void
@@ -3158,28 +3159,32 @@ dissect_q931_tpkt_pdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
dissect_q931_pdu(tvb, pinfo, tree, TRUE);
}
-static void
-dissect_q931(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_q931(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
dissect_q931_pdu(tvb, pinfo, tree, FALSE);
+ return tvb_captured_length(tvb);
}
-static void
-dissect_q931_over_ip(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_q931_over_ip(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
dissect_q931_pdu(tvb, pinfo, tree, TRUE);
+ return tvb_captured_length(tvb);
}
-static void
-dissect_q931_ie_cs0(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_q931_ie_cs0(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
dissect_q931_IEs(tvb, pinfo, NULL, tree, FALSE, 0, 0);
+ return tvb_captured_length(tvb);
}
-static void
-dissect_q931_ie_cs7(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_q931_ie_cs7(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
dissect_q931_IEs(tvb, pinfo, NULL, tree, FALSE, 0, 7);
+ return tvb_captured_length(tvb);
}
static void
@@ -3960,13 +3965,13 @@ proto_register_q931(void)
register_init_routine(q931_init);
register_cleanup_routine(q931_cleanup);
- q931_handle = register_dissector("q931", dissect_q931, proto_q931);
- q931_tpkt_handle = register_dissector("q931.tpkt", dissect_q931_tpkt, proto_q931);
+ q931_handle = new_register_dissector("q931", dissect_q931, proto_q931);
+ q931_tpkt_handle = new_register_dissector("q931.tpkt", dissect_q931_tpkt, proto_q931);
q931_tpkt_pdu_handle = create_dissector_handle(dissect_q931_tpkt_pdu,
proto_q931);
- q931_over_ip_handle = register_dissector("q931.over_ip", dissect_q931_over_ip, proto_q931);
- register_dissector("q931.ie", dissect_q931_ie_cs0, proto_q931);
- register_dissector("q931.ie.cs7", dissect_q931_ie_cs7, proto_q931);
+ q931_over_ip_handle = new_register_dissector("q931.over_ip", dissect_q931_over_ip, proto_q931);
+ new_register_dissector("q931.ie", dissect_q931_ie_cs0, proto_q931);
+ new_register_dissector("q931.ie.cs7", dissect_q931_ie_cs7, proto_q931);
/* subdissector code */
codeset_dissector_table = register_dissector_table("q931.codeset", "Q.931 Codeset", FT_UINT8, BASE_HEX, DISSECTOR_TABLE_ALLOW_DUPLICATE);
diff --git a/epan/dissectors/packet-q932.c b/epan/dissectors/packet-q932.c
index 1667ad7d13..cdb11c9866 100644
--- a/epan/dissectors/packet-q932.c
+++ b/epan/dissectors/packet-q932.c
@@ -801,9 +801,9 @@ dissect_q932_ie(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
}
/*--- dissect_q932_apdu -----------------------------------------------------*/
-static void
-dissect_q932_apdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) {
- call_dissector(q932_ros_handle, tvb, pinfo, tree);
+static int
+dissect_q932_apdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_) {
+ return call_dissector(q932_ros_handle, tvb, pinfo, tree);
}
/*--- proto_register_q932 ---------------------------------------------------*/
@@ -1025,7 +1025,7 @@ void proto_register_q932(void) {
/* Register protocol and dissector */
proto_q932 = proto_register_protocol(PNAME, PSNAME, PFNAME);
- register_dissector("q932.apdu", dissect_q932_apdu, proto_q932);
+ new_register_dissector("q932.apdu", dissect_q932_apdu, proto_q932);
/* Register fields and subtrees */
proto_register_field_array(proto_q932, hf, array_length(hf));
diff --git a/epan/dissectors/packet-q933.c b/epan/dissectors/packet-q933.c
index 65281350ac..a322e67195 100644
--- a/epan/dissectors/packet-q933.c
+++ b/epan/dissectors/packet-q933.c
@@ -1787,8 +1787,8 @@ static const value_string q933_codeset_vals[] = {
{ 0x00, NULL },
};
-static void
-dissect_q933(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_q933(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
int offset = 0;
proto_tree *q933_tree = NULL;
@@ -2033,6 +2033,7 @@ dissect_q933(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
offset += 1 + 1 + info_element_len;
codeset = locked_codeset;
}
+ return tvb_captured_length(tvb);
}
void
@@ -2232,7 +2233,7 @@ proto_register_q933(void)
expert_q933 = expert_register_protocol(proto_q933);
expert_register_field_array(expert_q933, ei, array_length(ei));
- register_dissector("q933", dissect_q933, proto_q933);
+ new_register_dissector("q933", dissect_q933, proto_q933);
}
void
diff --git a/epan/dissectors/packet-raknet.c b/epan/dissectors/packet-raknet.c
index c025c16be4..637fffada8 100644
--- a/epan/dissectors/packet-raknet.c
+++ b/epan/dissectors/packet-raknet.c
@@ -473,8 +473,8 @@ init_raknet(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint *offset)
* RakNet is just a dissector. It is invoked by protocols whose applications
* are built using the RakNet libs.
*/
-static void
-dissect_raknet(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_raknet(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
guint8 packet_id;
@@ -488,6 +488,7 @@ dissect_raknet(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
proto_tree_add_expert(tree, pinfo, &ei_raknet_uknown_id, tvb,
0, 1);
}
+ return tvb_captured_length(tvb);
}
void
@@ -648,7 +649,7 @@ proto_register_raknet(void)
/*
* Raknet subdissector for use by external protocols.
*/
- register_dissector("raknet", dissect_raknet, proto_raknet);
+ new_register_dissector("raknet", dissect_raknet, proto_raknet);
}
void
diff --git a/epan/dissectors/packet-rdm.c b/epan/dissectors/packet-rdm.c
index 1f72e24c17..b1cae79fe2 100644
--- a/epan/dissectors/packet-rdm.c
+++ b/epan/dissectors/packet-rdm.c
@@ -2040,8 +2040,8 @@ dissect_rdm_mdb(tvbuff_t *tvb, guint offset, proto_tree *tree)
return offset;
}
-static void
-dissect_rdm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_rdm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
col_set_str(pinfo->cinfo, COL_PROTOCOL, "RDM");
col_clear(pinfo->cinfo, COL_INFO);
@@ -2127,6 +2127,7 @@ dissect_rdm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
proto_tree_add_item(rdm_tree, hf_rdm_trailer, tvb,
offset, -1, ENC_NA);
}
+ return tvb_captured_length(tvb);
}
void
@@ -2778,7 +2779,7 @@ proto_register_rdm(void)
"RDM", "rdm");
proto_register_field_array(proto_rdm, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- register_dissector("rdm", dissect_rdm, proto_rdm);
+ new_register_dissector("rdm", dissect_rdm, proto_rdm);
}
/*
diff --git a/epan/dissectors/packet-retix-bpdu.c b/epan/dissectors/packet-retix-bpdu.c
index 549eedb1d0..f70dc9473d 100644
--- a/epan/dissectors/packet-retix-bpdu.c
+++ b/epan/dissectors/packet-retix-bpdu.c
@@ -53,30 +53,27 @@ static int hf_retix_bpdu_forward_delay = -1;
* There are several fields I've not dissected as I'm not exactly sure what they are
* What ever happened to Retix anyway?
*/
-static void
-dissect_retix_bpdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_retix_bpdu(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
proto_tree *retix_bpdu_tree;
proto_tree *ti;
col_set_str(pinfo->cinfo, COL_PROTOCOL, "R-STP");
- col_add_fstr(pinfo->cinfo, COL_INFO, "Bridge MAC %s", tvb_ether_to_str(tvb, 10));
-
- retix_bpdu_tree = NULL;
- if (tree) {
- ti = proto_tree_add_item(tree, proto_retix_bpdu, tvb, 0, -1, ENC_NA);
- retix_bpdu_tree = proto_item_add_subtree(ti, ett_retix_bpdu);
- }
+ ti = proto_tree_add_item(tree, proto_retix_bpdu, tvb, 0, -1, ENC_NA);
+ retix_bpdu_tree = proto_item_add_subtree(ti, ett_retix_bpdu);
proto_tree_add_item(retix_bpdu_tree, hf_retix_bpdu_root_mac, tvb, 0, 6, ENC_NA);
proto_tree_add_item(retix_bpdu_tree, hf_retix_bpdu_bridge_mac, tvb, 10, 6, ENC_NA);
+ col_add_fstr(pinfo->cinfo, COL_INFO, "Bridge MAC %s", tvb_ether_to_str(tvb, 10));
proto_tree_add_item(retix_bpdu_tree, hf_retix_bpdu_max_age, tvb, 20, 2, ENC_BIG_ENDIAN);
proto_tree_add_item(retix_bpdu_tree, hf_retix_bpdu_hello_time, tvb, 22, 2, ENC_BIG_ENDIAN);
proto_tree_add_item(retix_bpdu_tree, hf_retix_bpdu_forward_delay, tvb, 24, 2, ENC_BIG_ENDIAN);
+ return tvb_captured_length(tvb);
}
@@ -112,7 +109,7 @@ proto_register_retix_bpdu(void)
proto_retix_bpdu = proto_register_protocol("Retix Spanning Tree Protocol", "R-STP", "r-stp");
proto_register_field_array(proto_retix_bpdu, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- register_dissector("rbpdu", dissect_retix_bpdu, proto_retix_bpdu);
+ new_register_dissector("rbpdu", dissect_retix_bpdu, proto_retix_bpdu);
}
/*
diff --git a/epan/dissectors/packet-rfc2190.c b/epan/dissectors/packet-rfc2190.c
index 9eb7e7940c..ed61655bc1 100644
--- a/epan/dissectors/packet-rfc2190.c
+++ b/epan/dissectors/packet-rfc2190.c
@@ -75,8 +75,8 @@ static gint ett_rfc2190 = -1;
static dissector_handle_t h263_handle;
-static void
-dissect_rfc2190( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree )
+static int
+dissect_rfc2190( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_ )
{
proto_item *ti = NULL;
proto_tree *rfc2190_tree = NULL;
@@ -238,6 +238,7 @@ dissect_rfc2190( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree )
/* The rest of the packet is the H.263 stream */
next_tvb = tvb_new_subset_remaining( tvb, offset);
call_dissector(h263_handle,next_tvb,pinfo,tree);
+ return tvb_captured_length(tvb);
}
void
@@ -521,7 +522,7 @@ proto_register_rfc2190(void)
"RFC2190", "rfc2190");
proto_register_field_array(proto_rfc2190, hf, array_length(hf));
- register_dissector("rfc2190", dissect_rfc2190, proto_rfc2190);
+ new_register_dissector("rfc2190", dissect_rfc2190, proto_rfc2190);
}
/*
diff --git a/epan/dissectors/packet-rfid-felica.c b/epan/dissectors/packet-rfid-felica.c
index 698cc8794f..196c495444 100644
--- a/epan/dissectors/packet-rfid-felica.c
+++ b/epan/dissectors/packet-rfid-felica.c
@@ -219,34 +219,28 @@ static const value_string felica_sys_codes[] = {
static dissector_handle_t data_handle=NULL;
-/* Forward-declare the dissector functions */
-static void dissect_felica(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
-
/* Subtree handles: set by register_subtree_array */
static gint ett_felica = -1;
-static void dissect_felica(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int dissect_felica(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
proto_item *item;
- proto_tree *felica_tree = NULL;
+ proto_tree *felica_tree;
guint8 opcode;
guint8 rwe_pos = 0;
tvbuff_t *rwe_resp_data_tvb;
col_set_str(pinfo->cinfo, COL_PROTOCOL, "FeliCa");
- if (tree) {
- /* Start with a top-level item to add everything else to */
- item = proto_tree_add_item(tree, proto_felica, tvb, 0, -1, ENC_NA);
- felica_tree = proto_item_add_subtree(item, ett_felica);
- }
+ /* Start with a top-level item to add everything else to */
+ item = proto_tree_add_item(tree, proto_felica, tvb, 0, -1, ENC_NA);
+ felica_tree = proto_item_add_subtree(item, ett_felica);
+
opcode = tvb_get_guint8(tvb, 0);
col_set_str(pinfo->cinfo, COL_INFO,
val_to_str_const(opcode, felica_opcodes, "Unknown"));
- if (tree) {
- proto_tree_add_item(felica_tree, hf_felica_opcode, tvb, 0, 1, ENC_BIG_ENDIAN);
- }
+ proto_tree_add_item(felica_tree, hf_felica_opcode, tvb, 0, 1, ENC_BIG_ENDIAN);
switch (opcode) {
@@ -453,6 +447,7 @@ static void dissect_felica(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
default:
break;
}
+ return tvb_captured_length(tvb);
}
void
@@ -551,7 +546,7 @@ proto_register_felica(void)
proto_register_field_array(proto_felica, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- register_dissector("felica", dissect_felica, proto_felica);
+ new_register_dissector("felica", dissect_felica, proto_felica);
}
/* Handler registration */
diff --git a/epan/dissectors/packet-rfid-mifare.c b/epan/dissectors/packet-rfid-mifare.c
index b62a2c1ebd..8be7f0fa5b 100644
--- a/epan/dissectors/packet-rfid-mifare.c
+++ b/epan/dissectors/packet-rfid-mifare.c
@@ -71,8 +71,8 @@ static const value_string hf_mifare_commands[] = {
/* Subtree handles: set by register_subtree_array */
static gint ett_mifare = -1;
-static void
-dissect_mifare(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_mifare(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
proto_item *item;
proto_tree *mifare_tree;
@@ -152,6 +152,7 @@ dissect_mifare(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
col_append_sep_fstr(pinfo->cinfo, COL_INFO, NULL, "Unknown");
break;
}
+ return tvb_captured_length(tvb);
}
void
@@ -190,7 +191,7 @@ proto_register_mifare(void)
proto_register_field_array(proto_mifare, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- register_dissector("mifare", dissect_mifare, proto_mifare);
+ new_register_dissector("mifare", dissect_mifare, proto_mifare);
}
/*
diff --git a/epan/dissectors/packet-rlc-lte.c b/epan/dissectors/packet-rlc-lte.c
index 50e33083dd..e28a21c956 100644
--- a/epan/dissectors/packet-rlc-lte.c
+++ b/epan/dissectors/packet-rlc-lte.c
@@ -2800,9 +2800,10 @@ static gboolean dissect_rlc_lte_heur(tvbuff_t *tvb, packet_info *pinfo,
/* Main dissection function. */
/*****************************/
-static void dissect_rlc_lte(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int dissect_rlc_lte(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
dissect_rlc_lte_common(tvb, pinfo, tree, FALSE);
+ return tvb_captured_length(tvb);
}
static void dissect_rlc_lte_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gboolean is_udp_framing)
@@ -3517,7 +3518,7 @@ void proto_register_rlc_lte(void)
expert_register_field_array(expert_rlc_lte, ei, array_length(ei));
/* Allow other dissectors to find this one by name. */
- register_dissector("rlc-lte", dissect_rlc_lte, proto_rlc_lte);
+ new_register_dissector("rlc-lte", dissect_rlc_lte, proto_rlc_lte);
/* Register the tap name */
rlc_lte_tap = register_tap("rlc-lte");
diff --git a/epan/dissectors/packet-rmp.c b/epan/dissectors/packet-rmp.c
index fde4097b4a..19e76f6ca4 100644
--- a/epan/dissectors/packet-rmp.c
+++ b/epan/dissectors/packet-rmp.c
@@ -97,8 +97,8 @@ const value_string rmp_error_vals[] = {
{ 0x00, NULL }
};
-static void
-dissect_rmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_rmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
proto_tree *rmp_tree = NULL;
proto_item *ti = NULL;
@@ -113,96 +113,95 @@ dissect_rmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
col_set_str(pinfo->cinfo, COL_INFO,
val_to_str_const(type, rmp_type_vals, "Unknown Type"));
- if (tree) {
- ti = proto_tree_add_item(tree, proto_rmp, tvb, 0, -1, ENC_NA);
- rmp_tree = proto_item_add_subtree(ti, ett_rmp);
- proto_tree_add_uint(rmp_tree, hf_rmp_type, tvb, 0, 1, type);
-
- switch (type) {
- case RMP_BOOT_REQ:
- proto_tree_add_item(rmp_tree,
- hf_rmp_retcode, tvb, 1, 1, ENC_BIG_ENDIAN);
- proto_tree_add_item(rmp_tree,
- hf_rmp_seqnum, tvb, 2, 4, ENC_BIG_ENDIAN);
- proto_tree_add_item(rmp_tree,
- hf_rmp_sessionid, tvb, 6, 2, ENC_BIG_ENDIAN);
- proto_tree_add_item(rmp_tree,
- hf_rmp_version, tvb, 8, 2, ENC_BIG_ENDIAN);
- proto_tree_add_item(rmp_tree,
- hf_rmp_machtype, tvb, 10, 20, ENC_ASCII|ENC_NA);
- /* The remaining fields are optional */
- if(!tvb_offset_exists(tvb, 30))
- return;
- len = tvb_get_guint8(tvb, 30);
- proto_tree_add_item(rmp_tree,
- hf_rmp_filename, tvb, 30, 1, ENC_ASCII|ENC_BIG_ENDIAN);
- if(tvb_offset_exists(tvb, len+31))
- call_dissector(data_handle,
- tvb_new_subset_remaining(tvb, len+31),
- pinfo, tree);
- break;
-
- case RMP_BOOT_REPL:
- proto_tree_add_item(rmp_tree,
- hf_rmp_retcode, tvb, 1, 1, ENC_BIG_ENDIAN);
- proto_tree_add_item(rmp_tree,
- hf_rmp_seqnum, tvb, 2, 4, ENC_BIG_ENDIAN);
- proto_tree_add_item(rmp_tree,
- hf_rmp_sessionid, tvb, 6, 2, ENC_BIG_ENDIAN);
- proto_tree_add_item(rmp_tree,
- hf_rmp_version, tvb, 8, 2, ENC_BIG_ENDIAN);
- len = tvb_get_guint8(tvb, 10);
- proto_tree_add_item(rmp_tree,
- hf_rmp_filename, tvb, 10, 1, ENC_ASCII|ENC_BIG_ENDIAN);
- if(tvb_offset_exists(tvb, len+11))
- call_dissector(data_handle,
- tvb_new_subset_remaining(tvb, len+11),
- pinfo, tree);
- break;
-
- case RMP_READ_REQ:
- proto_tree_add_item(rmp_tree,
- hf_rmp_retcode, tvb, 1, 1, ENC_BIG_ENDIAN);
- proto_tree_add_item(rmp_tree,
- hf_rmp_offset, tvb, 2, 4, ENC_BIG_ENDIAN);
- proto_tree_add_item(rmp_tree,
- hf_rmp_sessionid, tvb, 6, 2, ENC_BIG_ENDIAN);
- proto_tree_add_item(rmp_tree,
- hf_rmp_size, tvb, 8, 2, ENC_BIG_ENDIAN);
- if(tvb_offset_exists(tvb, 10))
- call_dissector(data_handle,
- tvb_new_subset_remaining(tvb, 10),
- pinfo, tree);
- break;
-
- case RMP_READ_REPL:
- proto_tree_add_item(rmp_tree,
- hf_rmp_retcode, tvb, 1, 1, ENC_BIG_ENDIAN);
- proto_tree_add_item(rmp_tree,
- hf_rmp_offset, tvb, 2, 4, ENC_BIG_ENDIAN);
- proto_tree_add_item(rmp_tree,
- hf_rmp_sessionid, tvb, 6, 2, ENC_BIG_ENDIAN);
- call_dissector(data_handle, tvb_new_subset_remaining(tvb,
- 8), pinfo, rmp_tree);
- break;
-
- case RMP_BOOT_DONE:
- proto_tree_add_item(rmp_tree,
- hf_rmp_retcode, tvb, 1, 1, ENC_BIG_ENDIAN);
- proto_tree_add_item(rmp_tree,
- hf_rmp_reserved, tvb, 2, 4, ENC_BIG_ENDIAN);
- proto_tree_add_item(rmp_tree,
- hf_rmp_sessionid, tvb, 6, 2, ENC_BIG_ENDIAN);
- if(tvb_offset_exists(tvb, 8))
- call_dissector(data_handle,
- tvb_new_subset_remaining(tvb, 6),
- pinfo, tree);
- break;
- default:
- call_dissector(data_handle, tvb_new_subset_remaining(tvb,
- 1), pinfo, tree);
- }
+ ti = proto_tree_add_item(tree, proto_rmp, tvb, 0, -1, ENC_NA);
+ rmp_tree = proto_item_add_subtree(ti, ett_rmp);
+ proto_tree_add_uint(rmp_tree, hf_rmp_type, tvb, 0, 1, type);
+
+ switch (type) {
+ case RMP_BOOT_REQ:
+ proto_tree_add_item(rmp_tree,
+ hf_rmp_retcode, tvb, 1, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(rmp_tree,
+ hf_rmp_seqnum, tvb, 2, 4, ENC_BIG_ENDIAN);
+ proto_tree_add_item(rmp_tree,
+ hf_rmp_sessionid, tvb, 6, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(rmp_tree,
+ hf_rmp_version, tvb, 8, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(rmp_tree,
+ hf_rmp_machtype, tvb, 10, 20, ENC_ASCII|ENC_NA);
+ /* The remaining fields are optional */
+ if(!tvb_offset_exists(tvb, 30))
+ return 30;
+ len = tvb_get_guint8(tvb, 30);
+ proto_tree_add_item(rmp_tree,
+ hf_rmp_filename, tvb, 30, 1, ENC_ASCII|ENC_BIG_ENDIAN);
+ if(tvb_offset_exists(tvb, len+31))
+ call_dissector(data_handle,
+ tvb_new_subset_remaining(tvb, len+31),
+ pinfo, tree);
+ break;
+
+ case RMP_BOOT_REPL:
+ proto_tree_add_item(rmp_tree,
+ hf_rmp_retcode, tvb, 1, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(rmp_tree,
+ hf_rmp_seqnum, tvb, 2, 4, ENC_BIG_ENDIAN);
+ proto_tree_add_item(rmp_tree,
+ hf_rmp_sessionid, tvb, 6, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(rmp_tree,
+ hf_rmp_version, tvb, 8, 2, ENC_BIG_ENDIAN);
+ len = tvb_get_guint8(tvb, 10);
+ proto_tree_add_item(rmp_tree,
+ hf_rmp_filename, tvb, 10, 1, ENC_ASCII|ENC_BIG_ENDIAN);
+ if(tvb_offset_exists(tvb, len+11))
+ call_dissector(data_handle,
+ tvb_new_subset_remaining(tvb, len+11),
+ pinfo, tree);
+ break;
+
+ case RMP_READ_REQ:
+ proto_tree_add_item(rmp_tree,
+ hf_rmp_retcode, tvb, 1, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(rmp_tree,
+ hf_rmp_offset, tvb, 2, 4, ENC_BIG_ENDIAN);
+ proto_tree_add_item(rmp_tree,
+ hf_rmp_sessionid, tvb, 6, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(rmp_tree,
+ hf_rmp_size, tvb, 8, 2, ENC_BIG_ENDIAN);
+ if(tvb_offset_exists(tvb, 10))
+ call_dissector(data_handle,
+ tvb_new_subset_remaining(tvb, 10),
+ pinfo, tree);
+ break;
+
+ case RMP_READ_REPL:
+ proto_tree_add_item(rmp_tree,
+ hf_rmp_retcode, tvb, 1, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(rmp_tree,
+ hf_rmp_offset, tvb, 2, 4, ENC_BIG_ENDIAN);
+ proto_tree_add_item(rmp_tree,
+ hf_rmp_sessionid, tvb, 6, 2, ENC_BIG_ENDIAN);
+ call_dissector(data_handle, tvb_new_subset_remaining(tvb,
+ 8), pinfo, rmp_tree);
+ break;
+
+ case RMP_BOOT_DONE:
+ proto_tree_add_item(rmp_tree,
+ hf_rmp_retcode, tvb, 1, 1, ENC_BIG_ENDIAN);
+ proto_tree_add_item(rmp_tree,
+ hf_rmp_reserved, tvb, 2, 4, ENC_BIG_ENDIAN);
+ proto_tree_add_item(rmp_tree,
+ hf_rmp_sessionid, tvb, 6, 2, ENC_BIG_ENDIAN);
+ if(tvb_offset_exists(tvb, 8))
+ call_dissector(data_handle,
+ tvb_new_subset_remaining(tvb, 6),
+ pinfo, tree);
+ break;
+ default:
+ call_dissector(data_handle, tvb_new_subset_remaining(tvb,
+ 1), pinfo, tree);
}
+ return tvb_captured_length(tvb);
}
void
@@ -250,7 +249,7 @@ proto_register_rmp(void)
proto_register_field_array(proto_rmp, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- register_dissector("rmp", dissect_rmp, proto_rmp);
+ new_register_dissector("rmp", dissect_rmp, proto_rmp);
}
void
diff --git a/epan/dissectors/packet-rpc.c b/epan/dissectors/packet-rpc.c
index e818ace084..13c6ba1460 100644
--- a/epan/dissectors/packet-rpc.c
+++ b/epan/dissectors/packet-rpc.c
@@ -315,7 +315,6 @@ GHashTable *rpc_progs = NULL;
typedef gboolean (*rec_dissector_t)(tvbuff_t *, packet_info *, proto_tree *,
tvbuff_t *, fragment_head *, gboolean, guint32, gboolean);
-static void dissect_rpc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
static void show_rpc_fraginfo(tvbuff_t *tvb, tvbuff_t *frag_tvb, proto_tree *tree,
guint32 rpc_rm, fragment_head *ipfd_head, packet_info *pinfo);
static const char *rpc_proc_name_internal(wmem_allocator_t *allocator, guint32 prog,
@@ -2973,14 +2972,15 @@ dissect_rpc_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data
TRUE);
}
-static void
-dissect_rpc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_rpc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
if (!dissect_rpc_message(tvb, pinfo, tree, NULL, NULL, FALSE, 0,
TRUE)) {
if (tvb_reported_length(tvb) != 0)
dissect_rpc_continuation(tvb, pinfo, tree);
}
+ return tvb_captured_length(tvb);
}
@@ -4297,7 +4297,7 @@ proto_register_rpc(void)
"Whether the RPC dissector should attempt to locate RPC PDU boundaries when initial fragment alignment is not known. This may cause false positives, or slow operation.",
&rpc_find_fragment_start);
- register_dissector("rpc", dissect_rpc, proto_rpc);
+ new_register_dissector("rpc", dissect_rpc, proto_rpc);
new_register_dissector("rpc-tcp", dissect_rpc_tcp, proto_rpc);
rpc_tap = register_tap("rpc");
diff --git a/epan/dissectors/packet-rpl.c b/epan/dissectors/packet-rpl.c
index c88a54faff..b6eddcdbee 100644
--- a/epan/dissectors/packet-rpl.c
+++ b/epan/dissectors/packet-rpl.c
@@ -259,8 +259,8 @@ dissect_rpl_container(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
tvb_new_subset_remaining(tvb, offset), pinfo, tree);
}
-static void
-dissect_rpl(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_rpl(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
guint16 rpl_len, rpl_type;
proto_item *ti;
@@ -286,6 +286,8 @@ dissect_rpl(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
call_dissector(data_handle,
tvb_new_subset_remaining(tvb, rpl_len), pinfo,
tree);
+
+ return tvb_captured_length(tvb);
}
void
@@ -400,7 +402,7 @@ proto_register_rpl(void)
"RPL", "rpl");
proto_register_field_array(proto_rpl, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- register_dissector("rpl", dissect_rpl, proto_rpl);
+ new_register_dissector("rpl", dissect_rpl, proto_rpl);
}
void
diff --git a/epan/dissectors/packet-rtcp.c b/epan/dissectors/packet-rtcp.c
index 5d11477f8c..92717e7808 100644
--- a/epan/dissectors/packet-rtcp.c
+++ b/epan/dissectors/packet-rtcp.c
@@ -702,8 +702,8 @@ static expert_field ei_rtcp_block_length = EI_INIT;
static expert_field ei_srtcp_encrypted_payload = EI_INIT;
/* Main dissection function */
-static void dissect_rtcp( tvbuff_t *tvb, packet_info *pinfo,
- proto_tree *tree );
+static int dissect_rtcp( tvbuff_t *tvb, packet_info *pinfo,
+ proto_tree *tree, void* data );
/* Displaying set info */
static gboolean global_rtcp_show_setup_info = TRUE;
@@ -834,7 +834,7 @@ dissect_rtcp_heur( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *da
}
/* OK, dissect as RTCP */
- dissect_rtcp(tvb, pinfo, tree);
+ dissect_rtcp(tvb, pinfo, tree, data);
return TRUE;
}
@@ -3302,8 +3302,8 @@ rtcp_packet_type_to_tree( int rtcp_packet_type)
return tree;
}
-static void
-dissect_rtcp( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree )
+static int
+dissect_rtcp( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_ )
{
proto_item *ti;
proto_tree *rtcp_tree = NULL;
@@ -3595,6 +3595,7 @@ dissect_rtcp( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree )
expert_add_info_format(pinfo, ti, &ei_rtcp_length_check, "Incorrect RTCP packet length information (expected %u bytes, found %d)", total_packet_length, offset);
}
+ return tvb_captured_length(tvb);
}
void
@@ -6506,7 +6507,7 @@ proto_register_rtcp(void)
expert_rtcp = expert_register_protocol(proto_rtcp);
expert_register_field_array(expert_rtcp, ei, array_length(ei));
- register_dissector("rtcp", dissect_rtcp, proto_rtcp);
+ new_register_dissector("rtcp", dissect_rtcp, proto_rtcp);
rtcp_module = prefs_register_protocol(proto_rtcp, NULL);
diff --git a/epan/dissectors/packet-rtp-events.c b/epan/dissectors/packet-rtp-events.c
index fb085ea0eb..6a9e7072fd 100644
--- a/epan/dissectors/packet-rtp-events.c
+++ b/epan/dissectors/packet-rtp-events.c
@@ -319,8 +319,8 @@ static gint ett_rtp_events = -1;
static struct _rtp_event_info rtp_event_info;
-static void
-dissect_rtp_events( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree )
+static int
+dissect_rtp_events( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_ )
{
proto_item *ti;
proto_tree *rtp_events_tree;
@@ -390,6 +390,7 @@ dissect_rtp_events( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree )
}
tap_queue_packet(rtp_event_tap, pinfo, &rtp_event_info);
+ return tvb_captured_length(tvb);
}
@@ -491,7 +492,7 @@ proto_register_rtp_events(void)
" that specifies Cisco Named Signaling Events", 10,
&cisco_nse_pt_value);
- register_dissector("rtpevent", dissect_rtp_events, proto_rtp_events);
+ new_register_dissector("rtpevent", dissect_rtp_events, proto_rtp_events);
rtp_event_tap = register_tap("rtpevent");
}
diff --git a/epan/dissectors/packet-rtp-midi.c b/epan/dissectors/packet-rtp-midi.c
index 9eff59953f..2e0c0c179e 100644
--- a/epan/dissectors/packet-rtp-midi.c
+++ b/epan/dissectors/packet-rtp-midi.c
@@ -6105,8 +6105,8 @@ decode_system_journal( tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree,
* external decoders. Afterwards the journal-section is decoded.
*/
-static void
-dissect_rtp_midi( tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree )
+static int
+dissect_rtp_midi( tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_ )
{
proto_item *ti;
proto_tree *rtp_midi_tree;
@@ -6188,8 +6188,7 @@ dissect_rtp_midi( tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree )
/* Decode a MIDI-command - if 0 is returned something went wrong */
consumed = decodemidi( tvb, pinfo, rtp_midi_commands_tree, cmd_count, offset, cmd_len, &runningstatus, &rsoffset );
if ( -1 == consumed ) {
- THROW( ReportedBoundsError );
- return;
+ return offset;
}
/* seek to next delta-time and set remaining length */
@@ -6235,8 +6234,7 @@ dissect_rtp_midi( tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree )
consumed = decode_system_journal( tvb, pinfo, rtp_midi_journal_tree, offset );
if ( -1 == consumed ) {
- THROW( ReportedBoundsError );
- return;
+ return offset;
}
/* seek to optional channel-journals-section */
@@ -6255,8 +6253,7 @@ dissect_rtp_midi( tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree )
consumed = decode_channel_journal( tvb, pinfo, rtp_midi_chanjournals_tree, offset );
if ( -1 == consumed ) {
- THROW( ReportedBoundsError );
- return;
+ return offset;
}
/* seek to next channel-journal */
@@ -6265,6 +6262,7 @@ dissect_rtp_midi( tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree )
}
}
}
+ return tvb_captured_length(tvb);
}
@@ -10031,7 +10029,7 @@ proto_register_rtp_midi( void )
rtp_midi_module = prefs_register_protocol ( proto_rtp_midi, proto_reg_handoff_rtp_midi );
prefs_register_uint_preference ( rtp_midi_module, "midi_payload_type_value", "Payload Type for RFC 4695/6295 RTP-MIDI", "This is the value of the Payload Type field that specifies RTP-MIDI", 10, &rtp_midi_payload_type_value );
- register_dissector( RTP_MIDI_DISSECTOR_ABBREVIATION, dissect_rtp_midi, proto_rtp_midi );
+ new_register_dissector( RTP_MIDI_DISSECTOR_ABBREVIATION, dissect_rtp_midi, proto_rtp_midi );
}
diff --git a/epan/dissectors/packet-rtp.c b/epan/dissectors/packet-rtp.c
index 4e157b07fe..67b39bd4de 100644
--- a/epan/dissectors/packet-rtp.c
+++ b/epan/dissectors/packet-rtp.c
@@ -1733,8 +1733,8 @@ dissect_rtp_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
-static void
-dissect_rtp_rfc2198(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_rtp_rfc2198(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
gint offset = 0;
int cnt;
@@ -1819,6 +1819,7 @@ dissect_rtp_rfc2198(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
offset += hdr_last->len;
hdr_last = hdr_last->next;
}
+ return tvb_captured_length(tvb);
}
static void
@@ -2413,8 +2414,8 @@ dissect_rtp( tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_
return offset;
}
-static void
-dissect_rtp_hdr_ext_ed137(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree )
+static int
+dissect_rtp_hdr_ext_ed137(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_ )
{
unsigned int hdr_extension_len;
@@ -2500,10 +2501,11 @@ dissect_rtp_hdr_ext_ed137(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree )
hdrext_offset += 4;
}
}
+ return tvb_captured_length(tvb);
}
-static void
-dissect_rtp_hdr_ext_ed137a(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree )
+static int
+dissect_rtp_hdr_ext_ed137a(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_ )
{
unsigned int hdr_extension_len;
@@ -2592,6 +2594,7 @@ dissect_rtp_hdr_ext_ed137a(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree )
hdrext_offset += 4;
}
}
+ return tvb_captured_length(tvb);
}
/* calculate the extended sequence number - top 16 bits of the previous sequence number,
@@ -3664,7 +3667,7 @@ proto_register_rtp(void)
expert_register_field_array(expert_rtp, ei, array_length(ei));
new_register_dissector("rtp", dissect_rtp, proto_rtp);
- register_dissector("rtp.rfc2198", dissect_rtp_rfc2198, proto_rtp);
+ new_register_dissector("rtp.rfc2198", dissect_rtp_rfc2198, proto_rtp);
rtp_tap = register_tap("rtp");
@@ -3679,8 +3682,8 @@ proto_register_rtp(void)
rtp_hdr_ext_rfc5285_dissector_table = register_dissector_table("rtp.ext.rfc5285.id",
"RTP Generic header extension (RFC 5285)", FT_UINT8, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE);
- register_dissector("rtp.ext.ed137", dissect_rtp_hdr_ext_ed137, proto_rtp);
- register_dissector("rtp.ext.ed137a", dissect_rtp_hdr_ext_ed137a, proto_rtp);
+ new_register_dissector("rtp.ext.ed137", dissect_rtp_hdr_ext_ed137, proto_rtp);
+ new_register_dissector("rtp.ext.ed137a", dissect_rtp_hdr_ext_ed137a, proto_rtp);
rtp_module = prefs_register_protocol(proto_rtp, proto_reg_handoff_rtp);
diff --git a/epan/dissectors/packet-rtsp.c b/epan/dissectors/packet-rtsp.c
index bb87643931..e45245f8b3 100644
--- a/epan/dissectors/packet-rtsp.c
+++ b/epan/dissectors/packet-rtsp.c
@@ -1360,8 +1360,8 @@ process_rtsp_reply(tvbuff_t *tvb, int offset, const guchar *data,
(gint) (status - status_start), status_i);
}
-static void
-dissect_rtsp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_rtsp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
int offset = 0;
int len;
@@ -1381,6 +1381,7 @@ dissect_rtsp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
*/
col_set_writable(pinfo->cinfo, FALSE);
}
+ return tvb_captured_length(tvb);
}
void
@@ -1463,7 +1464,7 @@ proto_register_rtsp(void)
expert_register_field_array(expert_rtsp, ei, array_length(ei));
/* Make this dissector findable by name */
- register_dissector("rtsp", dissect_rtsp, proto_rtsp);
+ new_register_dissector("rtsp", dissect_rtsp, proto_rtsp);
/* Register our configuration options, particularly our ports */
diff --git a/epan/dissectors/packet-sccp.c b/epan/dissectors/packet-sccp.c
index 229e674068..aaf4649af5 100644
--- a/epan/dissectors/packet-sccp.c
+++ b/epan/dissectors/packet-sccp.c
@@ -3326,8 +3326,8 @@ dissect_sccp_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *sccp_tree,
return offset;
}
-static void
-dissect_sccp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_sccp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
proto_item *sccp_item = NULL;
proto_tree *sccp_tree = NULL;
@@ -3400,7 +3400,7 @@ dissect_sccp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
/* dissect the message */
dissect_sccp_message(tvb, pinfo, sccp_tree, tree);
-
+ return tvb_captured_length(tvb);
}
/*** SccpUsers Table **/
@@ -4076,7 +4076,7 @@ proto_register_sccp(void)
proto_sccp = proto_register_protocol("Signalling Connection Control Part",
"SCCP", "sccp");
- register_dissector("sccp", dissect_sccp, proto_sccp);
+ new_register_dissector("sccp", dissect_sccp, proto_sccp);
/* Required function calls to register the header fields and subtrees used */
proto_register_field_array(proto_sccp, hf, array_length(hf));
diff --git a/epan/dissectors/packet-sctp.c b/epan/dissectors/packet-sctp.c
index 479ce656c0..e8c19b22d4 100644
--- a/epan/dissectors/packet-sctp.c
+++ b/epan/dissectors/packet-sctp.c
@@ -4679,8 +4679,8 @@ dissect_sctp_packet(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gboolea
proto_tree_move_item(sctp_tree, vt, pi);
}
-static void
-dissect_sctp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_sctp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
guint16 source_port, destination_port;
guint number_of_ppid;
@@ -4728,6 +4728,8 @@ dissect_sctp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
dissect_sctp_packet(tvb, pinfo, tree, FALSE);
if (!pinfo->flags.in_error_pkt && sctp_info.number_of_tvbs > 0)
tap_queue_packet(sctp_tap, pinfo, &sctp_info);
+
+ return tvb_captured_length(tvb);
}
/* Register the protocol with Wireshark */
@@ -5041,7 +5043,7 @@ proto_register_sctp(void)
sctp_port_dissector_table = register_dissector_table("sctp.port", "SCTP port", FT_UINT16, BASE_DEC, DISSECTOR_TABLE_NOT_ALLOW_DUPLICATE);
sctp_ppi_dissector_table = register_dissector_table("sctp.ppi", "SCTP payload protocol identifier", FT_UINT32, BASE_HEX, DISSECTOR_TABLE_NOT_ALLOW_DUPLICATE);
- register_dissector("sctp", dissect_sctp, proto_sctp);
+ new_register_dissector("sctp", dissect_sctp, proto_sctp);
sctp_heur_subdissector_list = register_heur_dissector_list("sctp");
register_init_routine(sctp_init);
diff --git a/epan/dissectors/packet-sdh.c b/epan/dissectors/packet-sdh.c
index 9adb93cd8c..fa8aa080dc 100644
--- a/epan/dissectors/packet-sdh.c
+++ b/epan/dissectors/packet-sdh.c
@@ -138,8 +138,8 @@ get_sdh_level(tvbuff_t *tvb, packet_info *pinfo)
}
-static void
-dissect_sdh(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_sdh(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
col_set_str(pinfo->cinfo, COL_PROTOCOL, "SDH");
col_clear(pinfo->cinfo,COL_INFO);
@@ -195,6 +195,7 @@ dissect_sdh(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
auoffset = (((9 + 3*COLUMNS) /*start after H3*/ + au*3 + 9*(au/87) /*add extra SOH rows to offset*/) * level) % (COLUMNS*9*level);
proto_tree_add_item(sdh_tree, hf_sdh_j1, tvb, auoffset, 1, ENC_BIG_ENDIAN);
}
+ return tvb_captured_length(tvb);
}
void
@@ -276,7 +277,7 @@ proto_register_sdh(void)
"Data rate",
&sdh_data_rate, data_rates, ENC_BIG_ENDIAN);
- register_dissector("sdh", dissect_sdh, proto_sdh);
+ new_register_dissector("sdh", dissect_sdh, proto_sdh);
}
void
diff --git a/epan/dissectors/packet-sdp.c b/epan/dissectors/packet-sdp.c
index ec01b8b6b1..9e02e72fd5 100644
--- a/epan/dissectors/packet-sdp.c
+++ b/epan/dissectors/packet-sdp.c
@@ -2252,8 +2252,8 @@ void setup_sdp_transport_resend(int current_frame, int request_frame)
}
}
-static void
-dissect_sdp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_sdp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
proto_tree *sdp_tree;
proto_item *ti, *sub_ti;
@@ -2643,6 +2643,8 @@ dissect_sdp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
}
/* Report this packet to the tap */
tap_queue_packet(sdp_tap, pinfo, sdp_pi);
+
+ return tvb_captured_length(tvb);
}
void
@@ -3094,7 +3096,7 @@ proto_register_sdp(void)
* Register the dissector by name, so other dissectors can
* grab it by name rather than just referring to it directly.
*/
- register_dissector("sdp", dissect_sdp, proto_sdp);
+ new_register_dissector("sdp", dissect_sdp, proto_sdp);
/* Register for tapping */
sdp_tap = register_tap("sdp");
diff --git a/epan/dissectors/packet-ses.c b/epan/dissectors/packet-ses.c
index 2dead5a20f..8605b1cd21 100644
--- a/epan/dissectors/packet-ses.c
+++ b/epan/dissectors/packet-ses.c
@@ -1052,8 +1052,8 @@ dissect_spdu(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree,
/*
* Dissect SPDUs inside a TSDU.
*/
-static void
-dissect_ses(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_ses(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
int offset = 0;
guint8 type;
@@ -1082,6 +1082,7 @@ dissect_ses(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
/* Dissect the remaining SPDUs. */
while (tvb_reported_length_remaining(tvb, offset) > 0)
offset = dissect_spdu(tvb, offset, pinfo, tree, NON_TOKENS_SPDU, is_clsp);
+ return tvb_captured_length(tvb);
}
static void ses_reassemble_init (void)
@@ -1159,7 +1160,7 @@ dissect_ses_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, voi
}
}
- dissect_ses(tvb, pinfo, parent_tree);
+ dissect_ses(tvb, pinfo, parent_tree, data);
return TRUE;
}
@@ -1904,7 +1905,7 @@ proto_register_ses(void)
* (you can't refer to it directly from a plugin dissector
* on Windows without stuffing it into the Big Transfer Vector).
*/
- register_dissector("ses", dissect_ses, proto_ses);
+ new_register_dissector("ses", dissect_ses, proto_ses);
}
void
diff --git a/epan/dissectors/packet-sgsap.c b/epan/dissectors/packet-sgsap.c
index 09e0f92c3e..db8aabee09 100644
--- a/epan/dissectors/packet-sgsap.c
+++ b/epan/dissectors/packet-sgsap.c
@@ -1481,8 +1481,8 @@ static void get_sgsap_msg_params(guint8 oct, const gchar **msg_str, int *ett_tre
}
-static void
-dissect_sgsap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_sgsap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
proto_item *item;
proto_tree *sgsap_tree;
@@ -1515,7 +1515,7 @@ dissect_sgsap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
col_add_fstr(pinfo->cinfo, COL_INFO, "%s", msg_str);
}else{
proto_tree_add_item(tree, hf_sgsap_unknown_msg, tvb, offset, 1, ENC_BIG_ENDIAN);
- return;
+ return tvb_captured_length(tvb);
}
/*
@@ -1537,6 +1537,7 @@ dissect_sgsap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
(*msg_fcn_p)(tvb, sgsap_tree, pinfo, offset, len - offset);
}
+ return tvb_captured_length(tvb);
}
@@ -1680,7 +1681,7 @@ void proto_register_sgsap(void) {
expert_register_field_array(expert_sgsap, ei, array_length(ei));
/* Register dissector */
- register_dissector(PFNAME, dissect_sgsap, proto_sgsap);
+ new_register_dissector(PFNAME, dissect_sgsap, proto_sgsap);
/* Set default SCTP ports */
range_convert_str(&global_sgsap_port_range, SGSAP_SCTP_PORT_RANGE, MAX_SCTP_PORT);
diff --git a/epan/dissectors/packet-sipfrag.c b/epan/dissectors/packet-sipfrag.c
index 36aed3f143..07e85344ff 100644
--- a/epan/dissectors/packet-sipfrag.c
+++ b/epan/dissectors/packet-sipfrag.c
@@ -40,11 +40,10 @@ static int hf_sipfrag_line = -1;
static int ett_sipfrag = -1;
void proto_reg_handoff_sipfrag(void);
-static void dissect_sipfrag(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
/* Main dissection function. */
-static void dissect_sipfrag(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int dissect_sipfrag(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
proto_tree *sipfrag_tree;
proto_item *ti;
@@ -91,6 +90,7 @@ static void dissect_sipfrag(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
/* Close off summary of sipfrag in info column */
col_append_str(pinfo->cinfo, COL_INFO, (lines > 1) ? "...)" : ")");
+ return tvb_captured_length(tvb);
}
void proto_register_sipfrag(void)
@@ -115,7 +115,7 @@ void proto_register_sipfrag(void)
proto_register_subtree_array(ett, array_length(ett));
/* Allow other dissectors to find this one by name. */
- register_dissector("sipfrag", dissect_sipfrag, proto_sipfrag);
+ new_register_dissector("sipfrag", dissect_sipfrag, proto_sipfrag);
}
void proto_reg_handoff_sipfrag(void)
diff --git a/epan/dissectors/packet-sita.c b/epan/dissectors/packet-sita.c
index 428bb52eb2..9f5bcf5b6e 100644
--- a/epan/dissectors/packet-sita.c
+++ b/epan/dissectors/packet-sita.c
@@ -95,8 +95,8 @@ format_flags_string(guchar value, const gchar *array[])
return wmem_strbuf_get_str(buf);
}
-static void
-dissect_sita(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_sita(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
proto_item *ti;
guchar flags, signals, errors1, errors2, proto;
@@ -199,6 +199,7 @@ dissect_sita(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
col_add_fstr(pinfo->cinfo, COL_INFO, "IOP protocol number: %u", pinfo->pseudo_header->sita.sita_proto);
call_dissector(data_handle, tvb, pinfo, tree); /* call the generic (hex display) decoder instead */
}
+ return tvb_captured_length(tvb);
}
static const true_false_string tfs_sita_flags = { "From Remote", "From Local" };
@@ -378,7 +379,7 @@ proto_register_sita(void)
sita_dissector_table = register_dissector_table("sita.proto", "SITA protocol number", FT_UINT8, BASE_HEX, DISSECTOR_TABLE_NOT_ALLOW_DUPLICATE);
proto_register_field_array(proto_sita, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- register_dissector("sita", dissect_sita, proto_sita);
+ new_register_dissector("sita", dissect_sita, proto_sita);
}
void
diff --git a/epan/dissectors/packet-smb-browse.c b/epan/dissectors/packet-smb-browse.c
index d341c34257..0ff44096f8 100644
--- a/epan/dissectors/packet-smb-browse.c
+++ b/epan/dissectors/packet-smb-browse.c
@@ -521,8 +521,8 @@ dissect_smb_server_type_flags(tvbuff_t *tvb, int offset, packet_info *pinfo,
#define HOST_NAME_LEN 16
-static void
-dissect_mailslot_browse(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
+static int
+dissect_mailslot_browse(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_)
{
int offset = 0;
guint8 cmd;
@@ -730,6 +730,7 @@ dissect_mailslot_browse(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tr
tvb, offset, namelen, ENC_ASCII|ENC_NA);
break;
}
+ return tvb_captured_length(tvb);
}
/*
@@ -749,13 +750,13 @@ dissect_mailslot_browse(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tr
*
* XXX - what other browser packets go out to that mailslot?
*/
-static void
-dissect_mailslot_lanman(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
+static int
+dissect_mailslot_lanman(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_)
{
int offset = 0;
guint8 cmd;
- proto_tree *tree = NULL;
- proto_item *item = NULL;
+ proto_tree *tree;
+ proto_item *item;
guint32 periodicity;
const guint8 *host_name;
guint8 os_major_ver, os_minor_ver;
@@ -770,11 +771,8 @@ dissect_mailslot_lanman(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tr
/* Put in something, and replace it later */
col_add_str(pinfo->cinfo, COL_INFO, val_to_str(cmd, commands, "Unknown command:0x%02x"));
- if (parent_tree) {
- item = proto_tree_add_item(parent_tree, proto_smb_browse, tvb, offset, -1, ENC_NA);
-
- tree = proto_item_add_subtree(item, ett_browse);
- }
+ item = proto_tree_add_item(parent_tree, proto_smb_browse, tvb, offset, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_browse);
/* command */
proto_tree_add_uint(tree, hf_command, tvb, offset, 1, cmd);
@@ -831,6 +829,7 @@ dissect_mailslot_lanman(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tr
tvb, offset, namelen, ENC_CP437|ENC_NA);
break;
}
+ return tvb_captured_length(tvb);
}
void
@@ -1108,9 +1107,9 @@ proto_register_smb_browse(void)
proto_register_field_array(proto_smb_browse, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- register_dissector("mailslot_browse", dissect_mailslot_browse,
+ new_register_dissector("mailslot_browse", dissect_mailslot_browse,
proto_smb_browse);
- register_dissector("mailslot_lanman", dissect_mailslot_lanman,
+ new_register_dissector("mailslot_lanman", dissect_mailslot_lanman,
proto_smb_browse);
}
diff --git a/epan/dissectors/packet-smb-logon.c b/epan/dissectors/packet-smb-logon.c
index b4cd9820a8..81e62f07c9 100644
--- a/epan/dissectors/packet-smb-logon.c
+++ b/epan/dissectors/packet-smb-logon.c
@@ -891,8 +891,8 @@ static int (*dissect_smb_logon_cmds[])(tvbuff_t *tvb, packet_info *pinfo, proto_
};
-static void
-dissect_smb_logon(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_smb_logon(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
int offset = 0;
guint8 cmd;
@@ -929,6 +929,7 @@ dissect_smb_logon(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
dissect_smb_unknown(tvb, pinfo, smb_logon_tree,
offset);
}
+ return tvb_captured_length(tvb);
}
void
@@ -1150,7 +1151,7 @@ proto_register_smb_logon( void)
proto_register_field_array(proto_smb_logon, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- register_dissector("smb_netlogon", dissect_smb_logon, proto_smb_logon);
+ new_register_dissector("smb_netlogon", dissect_smb_logon, proto_smb_logon);
}
/*
diff --git a/epan/dissectors/packet-smb.c b/epan/dissectors/packet-smb.c
index 8fe89fbfa0..6bc28fd9ff 100644
--- a/epan/dissectors/packet-smb.c
+++ b/epan/dissectors/packet-smb.c
@@ -17115,8 +17115,8 @@ dissect_smb_flags2(tvbuff_t *tvb, proto_tree *parent_tree, int offset)
#define SMB_FLAGS_DIRN 0x80
-static void
-dissect_smb(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
+static int
+dissect_smb(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_)
{
int offset = 0;
proto_item *item;
@@ -17665,6 +17665,7 @@ dissect_smb(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
}
}
}
+ return tvb_captured_length(tvb);
}
static gboolean
@@ -17681,7 +17682,7 @@ dissect_smb_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, voi
return FALSE;
}
- dissect_smb(tvb, pinfo, parent_tree);
+ dissect_smb(tvb, pinfo, parent_tree, data);
return TRUE;
}
@@ -20535,7 +20536,7 @@ proto_register_smb(void)
/* Register the tap for the "Export Object" function */
smb_eo_tap = register_tap("smb_eo"); /* SMB Export Object tap */
- register_dissector("smb", dissect_smb, proto_smb);
+ new_register_dissector("smb", dissect_smb, proto_smb);
register_srt_table(proto_smb, NULL, 3, smbstat_packet, smbstat_init, NULL);
}
diff --git a/epan/dissectors/packet-sna.c b/epan/dissectors/packet-sna.c
index bf7647dfe4..65af513555 100644
--- a/epan/dissectors/packet-sna.c
+++ b/epan/dissectors/packet-sna.c
@@ -2445,8 +2445,8 @@ dissect_gds(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
* --------------------------------------------------------------------
*/
-static void
-dissect_sna(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_sna(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
guint8 fid;
proto_tree *sna_tree = NULL;
@@ -2479,10 +2479,11 @@ dissect_sna(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
default:
dissect_fid(tvb, pinfo, sna_tree, tree);
}
+ return tvb_captured_length(tvb);
}
-static void
-dissect_sna_xid(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_sna_xid(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
proto_tree *sna_tree = NULL;
proto_item *sna_ti = NULL;
@@ -2502,6 +2503,7 @@ dissect_sna_xid(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
sna_tree = proto_item_add_subtree(sna_ti, ett_sna);
}
dissect_xid(tvb, pinfo, sna_tree, tree);
+ return tvb_captured_length(tvb);
}
static void
@@ -3482,11 +3484,11 @@ proto_register_sna(void)
"SNA", "sna");
proto_register_field_array(proto_sna, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- register_dissector("sna", dissect_sna, proto_sna);
+ new_register_dissector("sna", dissect_sna, proto_sna);
proto_sna_xid = proto_register_protocol(
"Systems Network Architecture XID", "SNA XID", "sna_xid");
- register_dissector("sna_xid", dissect_sna_xid, proto_sna_xid);
+ new_register_dissector("sna_xid", dissect_sna_xid, proto_sna_xid);
sna_address_type = address_type_dissector_register("AT_SNA", "SNA Address", sna_fid_to_str_buf, sna_address_str_len, NULL, NULL, NULL, NULL);
diff --git a/epan/dissectors/packet-sndcp-xid.c b/epan/dissectors/packet-sndcp-xid.c
index ab67186841..b8eb06f9e4 100644
--- a/epan/dissectors/packet-sndcp-xid.c
+++ b/epan/dissectors/packet-sndcp-xid.c
@@ -467,8 +467,8 @@ static algo_parameters_t dcomp_algo_pars[] = {
/* Code to actually dissect the packets
*/
-static void
-dissect_sndcp_xid(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree)
+static int
+dissect_sndcp_xid(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, void* data _U_)
{
/* Set up structures needed to add the protocol subtree and manage it
*/
@@ -543,6 +543,7 @@ dissect_sndcp_xid(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree)
break; /* error: exit */
}
}
+ return tvb_captured_length(tvb);
}
@@ -863,7 +864,7 @@ proto_register_sndcp_xid(void)
/* Required function calls to register the header fields and subtrees used */
proto_register_field_array(proto_sndcp_xid, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- register_dissector("sndcpxid", dissect_sndcp_xid, proto_sndcp_xid);
+ new_register_dissector("sndcpxid", dissect_sndcp_xid, proto_sndcp_xid);
}
/*
diff --git a/epan/dissectors/packet-srp.c b/epan/dissectors/packet-srp.c
index 2807b03506..844d8a7334 100644
--- a/epan/dissectors/packet-srp.c
+++ b/epan/dissectors/packet-srp.c
@@ -71,7 +71,7 @@ static const value_string ccsrl_ls_vals[] = {
/*****************************************************************************/
-static void dissect_ccsrl(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree)
+static int dissect_ccsrl(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, void* data _U_)
{
proto_item *ccsrl_item;
proto_tree *ccsrl_tree=NULL;
@@ -92,6 +92,7 @@ static void dissect_ccsrl(tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree
*/
next_tvb = tvb_new_subset_remaining(tvb, 1);
call_dissector( h245dg_handle, next_tvb, pinfo, ccsrl_tree );
+ return tvb_captured_length(tvb);
}
static void dissect_srp_command(tvbuff_t * tvb, packet_info * pinfo, proto_tree * srp_tree)
@@ -111,7 +112,7 @@ static void dissect_srp_command(tvbuff_t * tvb, packet_info * pinfo, proto_tree
call_dissector(ccsrl_handle, next_tvb, pinfo, srp_tree );
}
-static void dissect_srp (tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree)
+static int dissect_srp (tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, void* data _U_)
{
proto_item *srp_item = NULL;
proto_tree *srp_tree = NULL;
@@ -167,6 +168,7 @@ static void dissect_srp (tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree)
}
}
+ return tvb_captured_length(tvb);
}
void proto_register_ccsrl (void)
@@ -184,7 +186,7 @@ void proto_register_ccsrl (void)
proto_ccsrl = proto_register_protocol ("H.324/CCSRL", "CCSRL", "ccsrl");
proto_register_field_array (proto_ccsrl, hf, array_length (hf));
proto_register_subtree_array (ett, array_length (ett));
- register_dissector("ccsrl", dissect_ccsrl, proto_ccsrl);
+ new_register_dissector("ccsrl", dissect_ccsrl, proto_ccsrl);
}
void proto_register_srp (void)
@@ -211,7 +213,7 @@ void proto_register_srp (void)
proto_srp = proto_register_protocol ("H.324/SRP", "SRP", "srp");
proto_register_field_array (proto_srp, hf, array_length (hf));
proto_register_subtree_array (ett, array_length (ett));
- register_dissector("srp", dissect_srp, proto_srp);
+ new_register_dissector("srp", dissect_srp, proto_srp);
/* register our init routine to be called at the start of a capture,
to clear out our hash tables etc */
diff --git a/epan/dissectors/packet-sscf-nni.c b/epan/dissectors/packet-sscf-nni.c
index 168bd8d257..a411844aa1 100644
--- a/epan/dissectors/packet-sscf-nni.c
+++ b/epan/dissectors/packet-sscf-nni.c
@@ -68,8 +68,8 @@ static const value_string sscf_status_vals[] = {
{ 0, NULL }
};
-static void
-dissect_sscf_nni(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_sscf_nni(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
guint reported_length;
proto_item *sscf_item = NULL;
@@ -102,6 +102,7 @@ dissect_sscf_nni(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
SSCF_SPARE_LENGTH, ENC_BIG_ENDIAN);
}
+ return tvb_captured_length(tvb);
}
void
@@ -123,7 +124,7 @@ proto_register_sscf(void)
proto_register_field_array(proto_sscf, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- register_dissector("sscf-nni", dissect_sscf_nni, proto_sscf);
+ new_register_dissector("sscf-nni", dissect_sscf_nni, proto_sscf);
}
diff --git a/epan/dissectors/packet-sstp.c b/epan/dissectors/packet-sstp.c
index 030c825f3a..25f8726861 100644
--- a/epan/dissectors/packet-sstp.c
+++ b/epan/dissectors/packet-sstp.c
@@ -341,10 +341,11 @@ get_sstp_pdu_len(packet_info *pinfo _U_, tvbuff_t *tvb, int offset, void *data _
return tvb_get_ntohs(tvb, offset+SSTP_OFFSET_LENGTH);
}
-static void
-dissect_sstp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_sstp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
- tcp_dissect_pdus(tvb, pinfo, tree, TRUE, SSTP_OFFSET_LENGTH+SSTP_FSIZE_LENGTH, get_sstp_pdu_len, dissect_sstp_pdu, NULL);
+ tcp_dissect_pdus(tvb, pinfo, tree, TRUE, SSTP_OFFSET_LENGTH+SSTP_FSIZE_LENGTH, get_sstp_pdu_len, dissect_sstp_pdu, data);
+ return tvb_captured_length(tvb);
}
void
@@ -505,7 +506,7 @@ proto_register_sstp(void)
proto_sstp = proto_register_protocol("Secure Socket Tunneling Protocol", "SSTP", "sstp");
- register_dissector("sstp", dissect_sstp, proto_sstp);
+ new_register_dissector("sstp", dissect_sstp, proto_sstp);
proto_register_field_array(proto_sstp, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
}
diff --git a/epan/dissectors/packet-stanag4607.c b/epan/dissectors/packet-stanag4607.c
index 8f3af9485a..1a353d4481 100644
--- a/epan/dissectors/packet-stanag4607.c
+++ b/epan/dissectors/packet-stanag4607.c
@@ -818,8 +818,8 @@ dissect_platform_location(tvbuff_t *tvb, proto_tree *seg_tree, gint offset)
expert_add_info(pinfo, pi, &ei_bad_length); \
}
-static void
-dissect_stanag4607(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_stanag4607(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
guint32 offset = 0;
gint8 first_segment;
@@ -833,7 +833,7 @@ dissect_stanag4607(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
/* Basic length check */
if (tvb_captured_length(tvb) < STANAG4607_MIN_LENGTH)
- return;
+ return 0;
col_set_str(pinfo->cinfo, COL_PROTOCOL, "S4607");
/* Clear out stuff in the info column */
@@ -926,6 +926,7 @@ dissect_stanag4607(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
break;
}
}
+ return tvb_captured_length(tvb);
}
void
@@ -1633,7 +1634,7 @@ proto_register_stanag4607(void)
expert_4607 = expert_register_protocol(proto_stanag4607);
expert_register_field_array(expert_4607, ei, array_length(ei));
- register_dissector("STANAG 4607", dissect_stanag4607, proto_stanag4607);
+ new_register_dissector("STANAG 4607", dissect_stanag4607, proto_stanag4607);
/* prefs_register_protocol(proto_stanag4607, proto_reg_handoff_stanag4607); */
}
@@ -1642,7 +1643,7 @@ proto_reg_handoff_stanag4607(void)
{
static dissector_handle_t stanag4607_handle;
- stanag4607_handle = create_dissector_handle(dissect_stanag4607,
+ stanag4607_handle = new_create_dissector_handle(dissect_stanag4607,
proto_stanag4607);
dissector_add_uint("wtap_encap", WTAP_ENCAP_STANAG_4607, stanag4607_handle);
}
diff --git a/epan/dissectors/packet-sua.c b/epan/dissectors/packet-sua.c
index a82d168056..35164641fa 100644
--- a/epan/dissectors/packet-sua.c
+++ b/epan/dissectors/packet-sua.c
@@ -2272,8 +2272,8 @@ dissect_sua_message(tvbuff_t *message_tvb, packet_info *pinfo, proto_tree *sua_t
}
}
-static void
-dissect_sua(tvbuff_t *message_tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_sua(tvbuff_t *message_tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
proto_item *sua_item;
proto_tree *sua_tree;
@@ -2292,19 +2292,13 @@ dissect_sua(tvbuff_t *message_tvb, packet_info *pinfo, proto_tree *tree)
/* Clear entries in Info column on summary display */
col_clear(pinfo->cinfo, COL_INFO);
- /* In the interest of speed, if "tree" is NULL, don't do any work not
- necessary to generate protocol tree items. */
- if (tree) {
- /* create the sua protocol tree */
- sua_item = proto_tree_add_item(tree, proto_sua, message_tvb, 0, -1, ENC_NA);
- sua_tree = proto_item_add_subtree(sua_item, ett_sua);
- } else {
- sua_tree = NULL;
- }
+ /* create the sua protocol tree */
+ sua_item = proto_tree_add_item(tree, proto_sua, message_tvb, 0, -1, ENC_NA);
+ sua_tree = proto_item_add_subtree(sua_item, ett_sua);
/* dissect the message */
dissect_sua_message(message_tvb, pinfo, sua_tree, tree);
-
+ return tvb_captured_length(message_tvb);
}
/* Register the protocol with Wireshark */
@@ -2460,7 +2454,7 @@ proto_register_sua(void)
/* Register the protocol name and description */
proto_sua = proto_register_protocol("SS7 SCCP-User Adaptation Layer", "SUA", "sua");
- register_dissector("sua", dissect_sua, proto_sua);
+ new_register_dissector("sua", dissect_sua, proto_sua);
/* Required function calls to register the header fields and subtrees used */
proto_register_field_array(proto_sua, hf, array_length(hf));
diff --git a/epan/dissectors/packet-sysex.c b/epan/dissectors/packet-sysex.c
index 7ba21a8009..fe7fd8705e 100644
--- a/epan/dissectors/packet-sysex.c
+++ b/epan/dissectors/packet-sysex.c
@@ -1105,122 +1105,119 @@ dissect_digitech_procedure(guint8 procedure, const gint offset,
}
/* dissector for System Exclusive MIDI data */
-static void
-dissect_sysex_command(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
+static int
+dissect_sysex_command(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, void* data _U_)
{
guint8 sysex_helper;
gint data_len;
proto_item *item;
+ proto_item *ti = NULL;
+ proto_tree *tree = NULL;
+ gint offset = 0;
+ guint8 manufacturer_id;
+ guint32 three_byte_manufacturer_id = 0xFFFFFF;
+ guint8 procedure_id;
col_set_str(pinfo->cinfo, COL_PROTOCOL, "SYSEX");
col_set_str(pinfo->cinfo, COL_INFO, "MIDI System Exclusive Command");
data_len = tvb_reported_length(tvb);
- if (parent_tree)
+ ti = proto_tree_add_protocol_format(parent_tree, proto_sysex, tvb, 0, -1, "MIDI System Exclusive Command");
+ tree = proto_item_add_subtree(ti, ett_sysex);
+
+ /* Check start byte (System Exclusive - 0xF0) */
+ sysex_helper = tvb_get_guint8(tvb, 0);
+ item = proto_tree_add_item(tree, hf_sysex_message_start, tvb, offset, 1, ENC_BIG_ENDIAN);
+ if (sysex_helper != 0xF0)
{
- proto_item *ti = NULL;
- proto_tree *tree = NULL;
- gint offset = 0;
- guint8 manufacturer_id;
- guint32 three_byte_manufacturer_id = 0xFFFFFF;
- guint8 procedure_id;
-
- ti = proto_tree_add_protocol_format(parent_tree, proto_sysex, tvb, 0, -1, "MIDI System Exclusive Command");
- tree = proto_item_add_subtree(ti, ett_sysex);
-
- /* Check start byte (System Exclusive - 0xF0) */
- sysex_helper = tvb_get_guint8(tvb, 0);
- item = proto_tree_add_item(tree, hf_sysex_message_start, tvb, offset, 1, ENC_BIG_ENDIAN);
- if (sysex_helper != 0xF0)
- {
- expert_add_info(pinfo, item, &ei_sysex_message_start_byte);
- }
+ expert_add_info(pinfo, item, &ei_sysex_message_start_byte);
+ }
+ offset++;
+
+ manufacturer_id = tvb_get_guint8(tvb, offset);
+ /* Three-byte manufacturer ID starts with 00 */
+ if (manufacturer_id == 0)
+ {
+ three_byte_manufacturer_id = tvb_get_ntoh24(tvb, offset);
+ proto_tree_add_item(tree, hf_sysex_three_byte_manufacturer_id, tvb, offset, 3, ENC_BIG_ENDIAN);
+ offset += 3;
+ }
+ /* One-byte manufacturer ID */
+ else
+ {
+ proto_tree_add_item(tree, hf_sysex_manufacturer_id, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++;
+ }
- manufacturer_id = tvb_get_guint8(tvb, offset);
- /* Three-byte manufacturer ID starts with 00 */
- if (manufacturer_id == 0)
- {
- three_byte_manufacturer_id = tvb_get_ntoh24(tvb, offset);
- proto_tree_add_item(tree, hf_sysex_three_byte_manufacturer_id, tvb, offset, 3, ENC_BIG_ENDIAN);
- offset += 3;
- }
- /* One-byte manufacturer ID */
- else
+ proto_tree_add_item(tree, hf_sysex_device_id, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+
+ /* Following data is menufacturer-specific */
+ switch (three_byte_manufacturer_id)
+ {
+ case SYSEX_MANUFACTURER_DOD:
{
- proto_tree_add_item(tree, hf_sysex_manufacturer_id, tvb, offset, 1, ENC_BIG_ENDIAN);
+ guint8 digitech_helper;
+ const guint8 *data_ptr;
+ int len;
+ int i;
+
+ digitech_helper = tvb_get_guint8(tvb, offset);
+ proto_tree_add_item(tree, hf_digitech_family_id, tvb, offset, 1, ENC_BIG_ENDIAN);
offset++;
- }
- proto_tree_add_item(tree, hf_sysex_device_id, tvb, offset, 1, ENC_BIG_ENDIAN);
- offset++;
+ proto_tree_add_item(tree, get_digitech_hf_product_by_family(digitech_helper),
+ tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
- /* Following data is menufacturer-specific */
- switch (three_byte_manufacturer_id)
- {
- case SYSEX_MANUFACTURER_DOD:
+ procedure_id = tvb_get_guint8(tvb, offset);
+ proto_tree_add_item(tree, hf_digitech_procedure_id, tvb, offset, 1, ENC_BIG_ENDIAN);
+ offset++;
+
+ dissect_digitech_procedure(procedure_id, offset, tvb, pinfo, tree);
+
+ len = tvb_reported_length(tvb) - 2;
+ offset = len; /* Penultimate byte is checksum */
+ data_ptr = tvb_get_ptr(tvb, 1, len);
+ /* Calculate checksum */
+ for (i = 0, digitech_helper = 0; i < len; ++i)
{
- guint8 digitech_helper;
- const guint8 *data_ptr;
- int len;
- int i;
-
- digitech_helper = tvb_get_guint8(tvb, offset);
- proto_tree_add_item(tree, hf_digitech_family_id, tvb, offset, 1, ENC_BIG_ENDIAN);
- offset++;
-
- proto_tree_add_item(tree, get_digitech_hf_product_by_family(digitech_helper),
- tvb, offset, 1, ENC_BIG_ENDIAN);
- offset++;
-
- procedure_id = tvb_get_guint8(tvb, offset);
- proto_tree_add_item(tree, hf_digitech_procedure_id, tvb, offset, 1, ENC_BIG_ENDIAN);
- offset++;
-
- dissect_digitech_procedure(procedure_id, offset, tvb, pinfo, tree);
-
- len = tvb_reported_length(tvb) - 2;
- offset = len; /* Penultimate byte is checksum */
- data_ptr = tvb_get_ptr(tvb, 1, len);
- /* Calculate checksum */
- for (i = 0, digitech_helper = 0; i < len; ++i)
- {
- digitech_helper ^= *data_ptr++;
- }
-
- item = proto_tree_add_item(tree, hf_digitech_checksum, tvb, offset, 1, ENC_BIG_ENDIAN);
- if (digitech_helper == 0)
- {
- proto_item_append_text(item, " (correct)");
- }
- else
- {
- proto_item_append_text(item, " (NOT correct)");
- expert_add_info(pinfo, item, &ei_digitech_checksum_bad);
- }
- offset++;
- break;
+ digitech_helper ^= *data_ptr++;
}
- default:
- break;
- }
- if (offset < data_len - 1)
- {
- proto_tree_add_expert(tree, pinfo, &ei_sysex_undecoded,
- tvb, offset, data_len - offset - 1);
+ item = proto_tree_add_item(tree, hf_digitech_checksum, tvb, offset, 1, ENC_BIG_ENDIAN);
+ if (digitech_helper == 0)
+ {
+ proto_item_append_text(item, " (correct)");
+ }
+ else
+ {
+ proto_item_append_text(item, " (NOT correct)");
+ expert_add_info(pinfo, item, &ei_digitech_checksum_bad);
+ }
+ offset++;
+ break;
}
+ default:
+ break;
+ }
- /* Check end byte (EOX - 0xF7) */
- sysex_helper = tvb_get_guint8(tvb, data_len - 1);
- item = proto_tree_add_item(tree, hf_sysex_message_eox, tvb, data_len - 1, 1, ENC_BIG_ENDIAN);
- if (sysex_helper != 0xF7)
- {
- expert_add_info(pinfo, item, &ei_sysex_message_end_byte);
- }
+ if (offset < data_len - 1)
+ {
+ proto_tree_add_expert(tree, pinfo, &ei_sysex_undecoded,
+ tvb, offset, data_len - offset - 1);
+ }
+
+ /* Check end byte (EOX - 0xF7) */
+ sysex_helper = tvb_get_guint8(tvb, data_len - 1);
+ item = proto_tree_add_item(tree, hf_sysex_message_eox, tvb, data_len - 1, 1, ENC_BIG_ENDIAN);
+ if (sysex_helper != 0xF7)
+ {
+ expert_add_info(pinfo, item, &ei_sysex_message_end_byte);
}
+ return tvb_captured_length(tvb);
}
void
@@ -1415,7 +1412,7 @@ proto_register_sysex(void)
expert_sysex = expert_register_protocol(proto_sysex);
expert_register_field_array(expert_sysex, ei, array_length(ei));
- register_dissector("sysex", dissect_sysex_command, proto_sysex);
+ new_register_dissector("sysex", dissect_sysex_command, proto_sysex);
}
/*
diff --git a/epan/dissectors/packet-telnet.c b/epan/dissectors/packet-telnet.c
index af8dcacb15..18d4f0ef25 100644
--- a/epan/dissectors/packet-telnet.c
+++ b/epan/dissectors/packet-telnet.c
@@ -1789,8 +1789,8 @@ static int find_unescaped_iac(tvbuff_t *tvb, int offset, int len)
return iac_offset;
}
-static void
-dissect_telnet(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_telnet(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
proto_tree *telnet_tree, *ti;
tvbuff_t *next_tvb;
@@ -1841,7 +1841,7 @@ dissect_telnet(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
if (is_tn3270 || is_tn5250) {
pinfo->desegment_offset = offset;
pinfo->desegment_len = DESEGMENT_ONE_MORE_SEGMENT;
- return;
+ return tvb_captured_length(tvb);
}
/*
* We found no IAC byte, so what remains in the buffer
@@ -1852,6 +1852,7 @@ dissect_telnet(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
break;
}
}
+ return tvb_captured_length(tvb);
}
void
@@ -2105,7 +2106,7 @@ proto_register_telnet(void)
expert_telnet = expert_register_protocol(proto_telnet);
expert_register_field_array(expert_telnet, ei, array_length(ei));
- telnet_handle = register_dissector("telnet", dissect_telnet, proto_telnet);
+ telnet_handle = new_register_dissector("telnet", dissect_telnet, proto_telnet);
}
void
diff --git a/epan/dissectors/packet-thrift.c b/epan/dissectors/packet-thrift.c
index b25ed61fae..7bacc6b272 100644
--- a/epan/dissectors/packet-thrift.c
+++ b/epan/dissectors/packet-thrift.c
@@ -434,7 +434,7 @@ void proto_register_thrift(void) {
proto_register_subtree_array(ett, array_length(ett));
/* register dissector */
- /*register_dissector("thrift", dissect_thrift, proto_thrift); */
+ /*new_register_dissector("thrift", dissect_thrift, proto_thrift); */
}
void proto_reg_handoff_thrift(void) {
diff --git a/epan/dissectors/packet-tnef.c b/epan/dissectors/packet-tnef.c
index 09f48be1f3..27b65b4866 100644
--- a/epan/dissectors/packet-tnef.c
+++ b/epan/dissectors/packet-tnef.c
@@ -486,7 +486,7 @@ static void dissect_mapiprops(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
}
-static void dissect_tnef(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int dissect_tnef(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
proto_item *attr_item, *item;
proto_tree *attr_tree, *tag_tree, *props_tree, *addr_tree, *date_tree;
@@ -511,7 +511,7 @@ static void dissect_tnef(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
expert_add_info_format(pinfo, item, &ei_tnef_incorrect_signature,
" [Incorrect, should be 0x%x. No further dissection possible. Check any Content-Transfer-Encoding has been removed.]", TNEF_SIGNATURE);
- return;
+ return offset;
} else {
@@ -618,6 +618,8 @@ static void dissect_tnef(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
/* there may be some padding */
if(tvb_reported_length_remaining(tvb, offset)) /* XXX: Not sure if they is really padding or not */
proto_tree_add_item(tree, hf_tnef_padding, tvb, offset, tvb_reported_length_remaining(tvb, offset), ENC_NA);
+
+ return tvb_captured_length(tvb);
}
static void dissect_tnef_file(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
@@ -628,7 +630,7 @@ static void dissect_tnef_file(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
col_append_str(pinfo->cinfo, COL_INFO, PNAME);
- dissect_tnef(tvb, pinfo, tree);
+ dissect_tnef(tvb, pinfo, tree, NULL);
}
/* Register all the bits needed by the filtering engine */
@@ -817,7 +819,7 @@ proto_register_tnef(void)
expert_register_field_array(expert_tnef, ei, array_length(ei));
/* Allow dissector to find be found by name. */
- tnef_handle = register_dissector(PFNAME, dissect_tnef, proto_tnef);
+ tnef_handle = new_register_dissector(PFNAME, dissect_tnef, proto_tnef);
}
diff --git a/epan/dissectors/packet-tpkt.c b/epan/dissectors/packet-tpkt.c
index cbb5e920d3..eb9d261391 100644
--- a/epan/dissectors/packet-tpkt.c
+++ b/epan/dissectors/packet-tpkt.c
@@ -556,10 +556,11 @@ dissect_tpkt_encap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
* Dissect RFC 1006 TPKT, which wraps a TPKT header around an OSI TP
* PDU.
*/
-static void
-dissect_tpkt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_tpkt(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
dissect_tpkt_encap(tvb, pinfo, tree, tpkt_desegment, osi_tp_handle);
+ return tvb_captured_length(tvb);
}
/*
@@ -638,7 +639,7 @@ proto_register_tpkt(void)
proto_tpkt_ptr = find_protocol_by_id(proto_tpkt);
proto_register_field_array(proto_tpkt, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- register_dissector("tpkt", dissect_tpkt, proto_tpkt);
+ new_register_dissector("tpkt", dissect_tpkt, proto_tpkt);
tpkt_module = prefs_register_protocol(proto_tpkt, NULL);
prefs_register_bool_preference(tpkt_module, "desegment",
diff --git a/epan/dissectors/packet-tr.c b/epan/dissectors/packet-tr.c
index 11f3fe586f..85c9b5a049 100644
--- a/epan/dissectors/packet-tr.c
+++ b/epan/dissectors/packet-tr.c
@@ -375,8 +375,8 @@ capture_tr(const guchar *pd, int offset, int len, packet_counts *ld) {
}
-static void
-dissect_tr(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_tr(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
proto_tree *tr_tree;
proto_item *ti, *hidden_item;
@@ -637,6 +637,7 @@ dissect_tr(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
}
tap_queue_packet(tr_tap, pinfo, trh);
+ return tvb_captured_length(tvb);
}
/* this routine is taken from the Linux net/802/tr.c code, which shows
@@ -798,7 +799,7 @@ proto_register_tr(void)
"Whether Linux mangling of the link-layer header should be checked for and worked around",
&fix_linux_botches);
- register_dissector("tr", dissect_tr, proto_tr);
+ new_register_dissector("tr", dissect_tr, proto_tr);
tr_tap=register_tap("tr");
register_conversation_table(proto_tr, TRUE, tr_conversation_packet, tr_hostlist_packet);
diff --git a/epan/dissectors/packet-trmac.c b/epan/dissectors/packet-trmac.c
index 4206f4fd72..ab4cba8ffa 100644
--- a/epan/dissectors/packet-trmac.c
+++ b/epan/dissectors/packet-trmac.c
@@ -474,8 +474,8 @@ sv_text(tvbuff_t *tvb, int svoff, packet_info *pinfo, proto_tree *tree)
return sv_length;
}
-static void
-dissect_trmac(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_trmac(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
proto_tree *mac_tree = NULL;
proto_item *ti;
@@ -515,6 +515,7 @@ dissect_trmac(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
break;
}
}
+ return tvb_captured_length(tvb);
}
void
@@ -691,7 +692,7 @@ proto_register_trmac(void)
expert_trmac = expert_register_protocol(proto_trmac);
expert_register_field_array(expert_trmac, ei, array_length(ei));
- register_dissector("trmac", dissect_trmac, proto_trmac);
+ new_register_dissector("trmac", dissect_trmac, proto_trmac);
}
/*
diff --git a/epan/dissectors/packet-tte-pcf.c b/epan/dissectors/packet-tte-pcf.c
index 407c6bd81c..370e393bac 100644
--- a/epan/dissectors/packet-tte-pcf.c
+++ b/epan/dissectors/packet-tte-pcf.c
@@ -61,8 +61,8 @@ static const value_string pcf_type_str_vals[] =
/* Code to actually dissect the packets */
-static void
-dissect_tte_pcf(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_tte_pcf(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
/* Set up structures needed to add the protocol subtree and manage it */
proto_item *tte_pcf_root_item;
@@ -75,7 +75,7 @@ dissect_tte_pcf(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
/* Check that there's enough data */
if (tvb_reported_length(tvb) < TTE_PCF_LENGTH )
{
- return;
+ return 0;
}
/* get sync_priority and sync_domain */
@@ -135,6 +135,7 @@ dissect_tte_pcf(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
TTE_PCF_TYPE_LENGTH+TTE_PCF_RES1_LENGTH, TTE_PCF_TC_LENGTH, ENC_BIG_ENDIAN);
}
+ return tvb_captured_length(tvb);
}
@@ -202,7 +203,7 @@ proto_register_tte_pcf(void)
proto_register_field_array(proto_tte_pcf, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- register_dissector("tte_pcf", dissect_tte_pcf, proto_tte_pcf);
+ new_register_dissector("tte_pcf", dissect_tte_pcf, proto_tte_pcf);
}
diff --git a/epan/dissectors/packet-turbocell.c b/epan/dissectors/packet-turbocell.c
index 0a3a8c3689..3d1ef1c3ac 100644
--- a/epan/dissectors/packet-turbocell.c
+++ b/epan/dissectors/packet-turbocell.c
@@ -99,8 +99,8 @@ static const value_string turbocell_satmode_values[] = {
};
-static void
-dissect_turbocell(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_turbocell(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
proto_item *ti, *name_item;
@@ -226,6 +226,7 @@ dissect_turbocell(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
}
}
}
+ return tvb_captured_length(tvb);
}
/* Register the protocol with Wireshark */
@@ -328,7 +329,7 @@ void proto_register_turbocell(void)
"Turbocell Aggregate Data", "turbocell_aggregate");
proto_register_field_array(proto_aggregate, aggregate_fields, array_length(aggregate_fields));
- register_dissector("turbocell", dissect_turbocell, proto_turbocell);
+ new_register_dissector("turbocell", dissect_turbocell, proto_turbocell);
proto_register_field_array(proto_turbocell, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
diff --git a/epan/dissectors/packet-ua.c b/epan/dissectors/packet-ua.c
index 986b890d30..976ed171cd 100644
--- a/epan/dissectors/packet-ua.c
+++ b/epan/dissectors/packet-ua.c
@@ -240,14 +240,16 @@ static void _dissect_ua_msg(tvbuff_t *tvb,
}
-static void dissect_ua_sys_to_term(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int dissect_ua_sys_to_term(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
_dissect_ua_msg(tvb, pinfo, tree, SYS_TO_TERM);
+ return tvb_captured_length(tvb);
}
-static void dissect_ua_term_to_sys(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int dissect_ua_term_to_sys(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
_dissect_ua_msg(tvb, pinfo, tree, TERM_TO_SYS);
+ return tvb_captured_length(tvb);
}
@@ -267,8 +269,8 @@ void proto_register_ua_msg(void)
/* UA dissector registration */
proto_ua_msg = proto_register_protocol("Universal Alcatel Protocol", "UA", "ua");
- register_dissector("ua_sys_to_term", dissect_ua_sys_to_term, proto_ua_msg);
- register_dissector("ua_term_to_sys", dissect_ua_term_to_sys, proto_ua_msg);
+ new_register_dissector("ua_sys_to_term", dissect_ua_sys_to_term, proto_ua_msg);
+ new_register_dissector("ua_term_to_sys", dissect_ua_term_to_sys, proto_ua_msg);
/* Common subtree array registration */
proto_register_subtree_array(ett, array_length(ett));
diff --git a/epan/dissectors/packet-uaudp.c b/epan/dissectors/packet-uaudp.c
index d5df3d6eae..f8475d6f77 100644
--- a/epan/dissectors/packet-uaudp.c
+++ b/epan/dissectors/packet-uaudp.c
@@ -329,19 +329,22 @@ static void _dissect_uaudp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
#if 0
/* XXX: The following are never actually used ?? */
-static void dissect_uaudp_dir_unknown(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int dissect_uaudp_dir_unknown(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
_dissect_uaudp(tvb, pinfo, tree, DIR_UNKNOWN);
+ return tvb_captured_length(tvb);
}
-static void dissect_uaudp_term_to_serv(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static void dissect_uaudp_term_to_serv(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
_dissect_uaudp(tvb, pinfo, tree, TERM_TO_SYS);
+ return tvb_captured_length(tvb);
}
-static void dissect_uaudp_serv_to_term(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static void dissect_uaudp_serv_to_term(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
_dissect_uaudp(tvb, pinfo, tree, SYS_TO_TERM);
+ return tvb_captured_length(tvb);
}
#endif
@@ -590,9 +593,9 @@ void proto_register_uaudp(void)
uaudp_handle = register_dissector("uaudp", dissect_uaudp, proto_uaudp);
#if 0 /* XXX: Not used ?? */
- register_dissector("uaudp_dir_unknown", dissect_uaudp_dir_unknown, proto_uaudp);
- register_dissector("uaudp_term_to_serv", dissect_uaudp_term_to_serv, proto_uaudp);
- register_dissector("uaudp_serv_to_term", dissect_uaudp_serv_to_term, proto_uaudp);
+ new_register_dissector("uaudp_dir_unknown", dissect_uaudp_dir_unknown, proto_uaudp);
+ new_register_dissector("uaudp_term_to_serv", dissect_uaudp_term_to_serv, proto_uaudp);
+ new_register_dissector("uaudp_serv_to_term", dissect_uaudp_serv_to_term, proto_uaudp);
#endif
proto_register_field_array(proto_uaudp, hf_uaudp, array_length(hf_uaudp));
diff --git a/epan/dissectors/packet-udp.c b/epan/dissectors/packet-udp.c
index cabd9051e8..f40b68b309 100644
--- a/epan/dissectors/packet-udp.c
+++ b/epan/dissectors/packet-udp.c
@@ -996,10 +996,11 @@ dissect(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, guint32 ip_proto)
decode_udp_ports(tvb, offset, pinfo, tree, udph->uh_sport, udph->uh_dport, udph->uh_ulen);
}
-static void
-dissect_udp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_udp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
dissect(tvb, pinfo, tree, IP_PROTO_UDP);
+ return tvb_captured_length(tvb);
}
static void
@@ -1075,7 +1076,7 @@ proto_register_udp(void)
proto_udp = proto_register_protocol("User Datagram Protocol",
"UDP", "udp");
hfi_udp = proto_registrar_get_nth(proto_udp);
- udp_handle = register_dissector("udp", dissect_udp, proto_udp);
+ udp_handle = new_register_dissector("udp", dissect_udp, proto_udp);
expert_udp = expert_register_protocol(proto_udp);
proto_register_fields(proto_udp, hfi, array_length(hfi));
diff --git a/epan/dissectors/packet-usb.c b/epan/dissectors/packet-usb.c
index b4757f48e1..50ccf631b3 100644
--- a/epan/dissectors/packet-usb.c
+++ b/epan/dissectors/packet-usb.c
@@ -3807,10 +3807,11 @@ dissect_usb_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent,
}
}
-static void
-dissect_linux_usb(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent)
+static int
+dissect_linux_usb(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent, void* data _U_)
{
dissect_usb_common(tvb, pinfo, parent, USB_HEADER_LINUX_48_BYTES);
+ return tvb_captured_length(tvb);
}
static void
@@ -4508,7 +4509,7 @@ proto_register_usb(void)
proto_usb = proto_register_protocol("USB", "USB", "usb");
proto_register_field_array(proto_usb, hf, array_length(hf));
proto_register_subtree_array(usb_subtrees, array_length(usb_subtrees));
- linux_usb_handle = register_dissector("usb", dissect_linux_usb, proto_usb);
+ linux_usb_handle = new_register_dissector("usb", dissect_linux_usb, proto_usb);
expert_usb = expert_register_protocol(proto_usb);
expert_register_field_array(expert_usb, ei, array_length(ei));
diff --git a/epan/dissectors/packet-uts.c b/epan/dissectors/packet-uts.c
index e46caae62b..1a09b1979b 100644
--- a/epan/dissectors/packet-uts.c
+++ b/epan/dissectors/packet-uts.c
@@ -99,8 +99,8 @@ set_addr(packet_info *pinfo _U_ , int field, gchar rid, gchar sid, gchar did)
}
}
-static void
-dissect_uts(tvbuff_t *tvb, packet_info *pinfo _U_ , proto_tree *tree)
+static int
+dissect_uts(tvbuff_t *tvb, packet_info *pinfo _U_ , proto_tree *tree, void* data _U_)
{
proto_tree *uts_tree = NULL;
proto_tree *uts_header_tree = NULL;
@@ -317,6 +317,7 @@ dissect_uts(tvbuff_t *tvb, packet_info *pinfo _U_ , proto_tree *tree)
}
}
}
+ return tvb_captured_length(tvb);
}
void
@@ -367,7 +368,7 @@ proto_register_uts(void)
proto_uts = proto_register_protocol("Unisys Transmittal System", "UTS", "uts"); /* name, short name, abbrev */
proto_register_field_array(proto_uts, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- register_dissector("uts", dissect_uts, proto_uts);
+ new_register_dissector("uts", dissect_uts, proto_uts);
}
/*
diff --git a/epan/dissectors/packet-v52.c b/epan/dissectors/packet-v52.c
index 908c94af1a..9fa7435ead 100644
--- a/epan/dissectors/packet-v52.c
+++ b/epan/dissectors/packet-v52.c
@@ -2105,10 +2105,11 @@ dissect_v52_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
}
}
-static void
-dissect_v52(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_v52(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
dissect_v52_message(tvb, pinfo, tree);
+ return tvb_captured_length(tvb);
}
void
@@ -2403,7 +2404,7 @@ proto_register_v52(void)
proto_register_field_array (proto_v52, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- register_dissector("v52", dissect_v52, proto_v52);
+ new_register_dissector("v52", dissect_v52, proto_v52);
}
/*
diff --git a/epan/dissectors/packet-v5dl.c b/epan/dissectors/packet-v5dl.c
index b16f9fd15d..97c06ea658 100644
--- a/epan/dissectors/packet-v5dl.c
+++ b/epan/dissectors/packet-v5dl.c
@@ -127,11 +127,8 @@ static const xdlc_cf_items v5dl_cf_items_ext = {
#define MAX_V5DL_PACKET_LEN 1024
-static void
-dissect_v5dl(tvbuff_t*, packet_info*, proto_tree*);
-
-static void
-dissect_v5dl(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_v5dl(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
proto_tree *v5dl_tree, *addr_tree;
proto_item *v5dl_ti, *addr_ti;
@@ -307,6 +304,7 @@ dissect_v5dl(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
/* call V5.2 dissector */
call_dissector(v52_handle, next_tvb, pinfo, tree);
}
+ return tvb_captured_length(tvb);
}
void
@@ -430,7 +428,7 @@ proto_register_v5dl(void)
proto_register_field_array (proto_v5dl, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- register_dissector("v5dl", dissect_v5dl, proto_v5dl);
+ new_register_dissector("v5dl", dissect_v5dl, proto_v5dl);
}
void
diff --git a/epan/dissectors/packet-v5ef.c b/epan/dissectors/packet-v5ef.c
index c407fa0807..be314ae6ac 100644
--- a/epan/dissectors/packet-v5ef.c
+++ b/epan/dissectors/packet-v5ef.c
@@ -67,11 +67,8 @@ static const value_string v5ef_direction_vals[] = {
#define MAX_V5EF_PACKET_LEN 1024
-static void
-dissect_v5ef(tvbuff_t*, packet_info*, proto_tree*);
-
-static void
-dissect_v5ef(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_v5ef(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
proto_tree *v5ef_tree, *addr_tree;
proto_item *v5ef_ti, *addr_ti;
@@ -141,6 +138,8 @@ dissect_v5ef(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
call_dissector(v5dl_handle,next_tvb, pinfo, tree);
else
call_dissector(lapd_handle,next_tvb, pinfo, tree);
+
+ return tvb_captured_length(tvb);
}
void
@@ -186,7 +185,7 @@ proto_register_v5ef(void)
proto_register_field_array (proto_v5ef, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- register_dissector("v5ef", dissect_v5ef, proto_v5ef);
+ new_register_dissector("v5ef", dissect_v5ef, proto_v5ef);
}
diff --git a/epan/dissectors/packet-vp8.c b/epan/dissectors/packet-vp8.c
index da444c03cd..1388fbe4ff 100644
--- a/epan/dissectors/packet-vp8.c
+++ b/epan/dissectors/packet-vp8.c
@@ -169,8 +169,8 @@ static const true_false_string vp8_hdr_frametype_vals = {
"keyframe"
};
-static void
-dissect_vp8(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_vp8(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
proto_item *item;
@@ -196,6 +196,8 @@ dissect_vp8(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
col_append_fstr(pinfo->cinfo, COL_INFO, " - %s",
val_to_str(frametype, vp8_type_values, "Unknown Type (%u)"));
+
+ return tvb_captured_length(tvb);
}
static void
@@ -578,7 +580,7 @@ proto_register_vp8(void)
"; Values must be in the range 96 - 127",
&temp_dynamic_payload_type_range, 127);
- register_dissector("vp8", dissect_vp8, proto_vp8);
+ new_register_dissector("vp8", dissect_vp8, proto_vp8);
}
static void
diff --git a/epan/dissectors/packet-wbxml.c b/epan/dissectors/packet-wbxml.c
index 0bbf0b8e6a..8f44d5a46d 100644
--- a/epan/dissectors/packet-wbxml.c
+++ b/epan/dissectors/packet-wbxml.c
@@ -7846,16 +7846,18 @@ dissect_wbxml_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
&codepage_attr, content_map);
}
-static void
-dissect_wbxml(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_wbxml(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
dissect_wbxml_common(tvb, pinfo, tree, NULL);
+ return tvb_captured_length(tvb);
}
-static void
-dissect_uaprof(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_uaprof(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
dissect_wbxml_common(tvb, pinfo, tree, &decode_uaprof_wap_248);
+ return tvb_captured_length(tvb);
}
/****************** Register the protocol with Wireshark ******************/
@@ -8118,8 +8120,8 @@ proto_register_wbxml(void)
"dissected (and visualized) then.",
&disable_wbxml_token_parsing);
- register_dissector("wbxml", dissect_wbxml, proto_wbxml);
- register_dissector("wbxml-uaprof", dissect_uaprof, proto_wbxml);
+ new_register_dissector("wbxml", dissect_wbxml, proto_wbxml);
+ new_register_dissector("wbxml-uaprof", dissect_uaprof, proto_wbxml);
}
diff --git a/epan/dissectors/packet-wfleet-hdlc.c b/epan/dissectors/packet-wfleet-hdlc.c
index 5d62a1fe8a..90e7cb322a 100644
--- a/epan/dissectors/packet-wfleet-hdlc.c
+++ b/epan/dissectors/packet-wfleet-hdlc.c
@@ -42,8 +42,8 @@ static const value_string wfleet_hdlc_cmd_vals[] = {
{ 0, NULL}
};
-static void
-dissect_wfleet_hdlc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_wfleet_hdlc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
proto_item *ti;
proto_tree *fh_tree = NULL;
@@ -76,7 +76,7 @@ dissect_wfleet_hdlc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
next_tvb = tvb_new_subset_remaining(tvb, 2);
call_dissector(eth_withoutfcs_handle, next_tvb, pinfo, tree);
-
+ return tvb_captured_length(tvb);
}
void
@@ -98,7 +98,7 @@ proto_register_wfleet_hdlc(void)
proto_register_field_array(proto_wfleet_hdlc, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- register_dissector("wfleet_hdlc", dissect_wfleet_hdlc, proto_wfleet_hdlc);
+ new_register_dissector("wfleet_hdlc", dissect_wfleet_hdlc, proto_wfleet_hdlc);
}
diff --git a/epan/dissectors/packet-wsp.c b/epan/dissectors/packet-wsp.c
index da2cb8528e..d7f9f626a3 100644
--- a/epan/dissectors/packet-wsp.c
+++ b/epan/dissectors/packet-wsp.c
@@ -5040,13 +5040,14 @@ dissect_wsp_fromudp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
* Leave the "Protocol" column alone - the dissector calling us should
* have set it.
*/
-static void
-dissect_wsp_fromwap_co(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_wsp_fromwap_co(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
/*
* XXX - what about WTLS->WTP->WSP?
*/
dissect_wsp_common(tvb, pinfo, tree, wtp_fromudp_handle, FALSE);
+ return tvb_captured_length(tvb);
}
@@ -5055,14 +5056,15 @@ dissect_wsp_fromwap_co(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
* Leave the "Protocol" column alone - the dissector calling us should
* have set it.
*/
-static void
-dissect_wsp_fromwap_cl(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_wsp_fromwap_cl(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
/*
* XXX - what about WTLS->WSP?
*/
col_clear(pinfo->cinfo, COL_INFO);
dissect_wsp_common(tvb, pinfo, tree, wtp_fromudp_handle, TRUE);
+ return tvb_captured_length(tvb);
}
@@ -7157,8 +7159,8 @@ proto_register_wsp(void)
expert_wsp = expert_register_protocol(proto_wsp);
expert_register_field_array(expert_wsp, ei, array_length(ei));
- register_dissector("wsp-co", dissect_wsp_fromwap_co, proto_wsp);
- register_dissector("wsp-cl", dissect_wsp_fromwap_cl, proto_wsp);
+ new_register_dissector("wsp-co", dissect_wsp_fromwap_co, proto_wsp);
+ new_register_dissector("wsp-cl", dissect_wsp_fromwap_cl, proto_wsp);
heur_subdissector_list = register_heur_dissector_list("wsp");
wsp_fromudp_handle = create_dissector_handle(dissect_wsp_fromudp,
diff --git a/epan/dissectors/packet-wtp.c b/epan/dissectors/packet-wtp.c
index caab6e3315..70bf8ec26a 100644
--- a/epan/dissectors/packet-wtp.c
+++ b/epan/dissectors/packet-wtp.c
@@ -778,13 +778,14 @@ dissect_wtp_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
* Called directly from UDP.
* Put "WTP+WSP" into the "Protocol" column.
*/
-static void
-dissect_wtp_fromudp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_wtp_fromudp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
col_set_str(pinfo->cinfo, COL_PROTOCOL, "WTP+WSP");
col_clear(pinfo->cinfo, COL_INFO);
dissect_wtp_common(tvb, pinfo, tree);
+ return tvb_captured_length(tvb);
}
/*
@@ -796,13 +797,14 @@ dissect_wtp_fromudp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
*
* XXX - can this be called from any other dissector?
*/
-static void
-dissect_wtp_fromwtls(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_wtp_fromwtls(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
col_set_str(pinfo->cinfo, COL_PROTOCOL, "WTLS+WTP+WSP");
col_clear(pinfo->cinfo, COL_INFO);
dissect_wtp_common(tvb, pinfo, tree);
+ return tvb_captured_length(tvb);
}
/* Register the protocol with Wireshark */
@@ -1058,8 +1060,8 @@ proto_register_wtp(void)
proto_register_field_array(proto_wtp, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
- register_dissector("wtp-wtls", dissect_wtp_fromwtls, proto_wtp);
- register_dissector("wtp-udp", dissect_wtp_fromudp, proto_wtp);
+ new_register_dissector("wtp-wtls", dissect_wtp_fromwtls, proto_wtp);
+ new_register_dissector("wtp-udp", dissect_wtp_fromudp, proto_wtp);
register_init_routine(wtp_defragment_init);
register_cleanup_routine(wtp_defragment_cleanup);
}
diff --git a/epan/dissectors/packet-x25.c b/epan/dissectors/packet-x25.c
index 8b87902765..f02f1f858f 100644
--- a/epan/dissectors/packet-x25.c
+++ b/epan/dissectors/packet-x25.c
@@ -1998,21 +1998,22 @@ dissect_x25_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
* X.25 dissector for use when "pinfo->pseudo_header" points to a
* "struct x25_phdr".
*/
-static void
-dissect_x25_dir(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_x25_dir(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
dissect_x25_common(tvb, pinfo, tree,
(pinfo->pseudo_header->x25.flags & FROM_DCE) ? X25_FROM_DCE :
X25_FROM_DTE,
pinfo->pseudo_header->x25.flags & FROM_DCE);
+ return tvb_captured_length(tvb);
}
/*
* X.25 dissector for use when "pinfo->pseudo_header" doesn't point to a
* "struct x25_phdr".
*/
-static void
-dissect_x25(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_x25(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
int direction;
@@ -2026,6 +2027,7 @@ dissect_x25(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
if (direction == 0)
direction = (pinfo->srcport > pinfo->destport)*2 - 1;
dissect_x25_common(tvb, pinfo, tree, X25_UNKNOWN, direction > 0);
+ return tvb_captured_length(tvb);
}
static void
@@ -2371,8 +2373,8 @@ proto_register_x25(void)
"X.25 secondary protocol identifier", FT_UINT8, BASE_HEX, DISSECTOR_TABLE_NOT_ALLOW_DUPLICATE);
x25_heur_subdissector_list = register_heur_dissector_list("x.25");
- register_dissector("x.25_dir", dissect_x25_dir, proto_x25);
- register_dissector("x.25", dissect_x25, proto_x25);
+ new_register_dissector("x.25_dir", dissect_x25_dir, proto_x25);
+ new_register_dissector("x.25", dissect_x25, proto_x25);
/* Preferences */
x25_module = prefs_register_protocol(proto_x25, NULL);
diff --git a/epan/dissectors/packet-zbee-zcl-general.c b/epan/dissectors/packet-zbee-zcl-general.c
index 810c5dc285..30eed299dd 100644
--- a/epan/dissectors/packet-zbee-zcl-general.c
+++ b/epan/dissectors/packet-zbee-zcl-general.c
@@ -557,10 +557,10 @@ static const value_string zbee_zcl_power_config_batt_type_names[] = {
* none
*---------------------------------------------------------------
*/
-static void
-dissect_zbee_zcl_power_config(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
+static int
+dissect_zbee_zcl_power_config(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void* data _U_)
{
- return;
+ return tvb_captured_length(tvb);
} /*dissect_zbee_zcl_power_config*/
/*FUNCTION:------------------------------------------------------
@@ -829,7 +829,7 @@ proto_register_zbee_zcl_power_config(void)
proto_register_subtree_array(ett, array_length(ett));
/* Register the ZigBee ZCL power configuration dissector. */
- register_dissector(ZBEE_PROTOABBREV_ZCL_POWER_CONFIG, dissect_zbee_zcl_power_config, proto_zbee_zcl_power_config);
+ new_register_dissector(ZBEE_PROTOABBREV_ZCL_POWER_CONFIG, dissect_zbee_zcl_power_config, proto_zbee_zcl_power_config);
} /*proto_register_zbee_zcl_power_config*/
/*FUNCTION:------------------------------------------------------
diff --git a/epan/dissectors/packet-zbee-zcl-ha.c b/epan/dissectors/packet-zbee-zcl-ha.c
index 78022eb3f4..ea61de54af 100644
--- a/epan/dissectors/packet-zbee-zcl-ha.c
+++ b/epan/dissectors/packet-zbee-zcl-ha.c
@@ -216,10 +216,10 @@ static const value_string zbee_zcl_appl_idt_ceced_spec_ver_names[] = {
* none
*---------------------------------------------------------------
*/
-static void
-dissect_zbee_zcl_appl_idt(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
+static int
+dissect_zbee_zcl_appl_idt(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void* data _U_)
{
- return;
+ return tvb_captured_length(tvb);
} /*dissect_zbee_zcl_appl_idt*/
/*FUNCTION:------------------------------------------------------
@@ -355,7 +355,7 @@ proto_register_zbee_zcl_appl_idt(void)
proto_register_subtree_array(ett, array_length(ett));
/* Register the ZigBee ZCL Appliance Identification dissector. */
- register_dissector(ZBEE_PROTOABBREV_ZCL_APPLIDT, dissect_zbee_zcl_appl_idt, proto_zbee_zcl_appl_idt);
+ new_register_dissector(ZBEE_PROTOABBREV_ZCL_APPLIDT, dissect_zbee_zcl_appl_idt, proto_zbee_zcl_appl_idt);
} /*proto_register_zbee_zcl_appl_idt*/
/*FUNCTION:------------------------------------------------------
@@ -505,10 +505,10 @@ static const value_string zbee_zcl_met_idt_data_quality_names[] = {
* none
*---------------------------------------------------------------
*/
-static void
-dissect_zbee_zcl_met_idt(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
+static int
+dissect_zbee_zcl_met_idt(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void* data _U_)
{
- return;
+ return tvb_captured_length(tvb);
} /*dissect_zbee_zcl_met_idt*/
/*FUNCTION:------------------------------------------------------
@@ -586,7 +586,7 @@ proto_register_zbee_zcl_met_idt(void)
proto_register_field_array(proto_zbee_zcl_met_idt, hf, array_length(hf));
/* Register the ZigBee ZCL Meter Identification dissector. */
- register_dissector(ZBEE_PROTOABBREV_ZCL_METIDT, dissect_zbee_zcl_met_idt, proto_zbee_zcl_met_idt);
+ new_register_dissector(ZBEE_PROTOABBREV_ZCL_METIDT, dissect_zbee_zcl_met_idt, proto_zbee_zcl_met_idt);
} /*proto_register_zbee_zcl_met_idt*/
/*FUNCTION:------------------------------------------------------
diff --git a/epan/dissectors/packet-zbee-zcl-meas-sensing.c b/epan/dissectors/packet-zbee-zcl-meas-sensing.c
index 49ac1dfabd..7190e39a15 100644
--- a/epan/dissectors/packet-zbee-zcl-meas-sensing.c
+++ b/epan/dissectors/packet-zbee-zcl-meas-sensing.c
@@ -139,10 +139,10 @@ static const value_string zbee_zcl_illum_meas_sensor_type_names[] = {
* none
*---------------------------------------------------------------
*/
-static void
-dissect_zbee_zcl_illum_meas(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
+static int
+dissect_zbee_zcl_illum_meas(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void* data _U_)
{
- return;
+ return tvb_captured_length(tvb);
} /*dissect_zbee_zcl_illum_meas*/
/*FUNCTION:------------------------------------------------------
@@ -343,7 +343,7 @@ proto_register_zbee_zcl_illum_meas(void)
proto_register_field_array(proto_zbee_zcl_illum_meas, hf, array_length(hf));
/* Register the ZigBee ZCL Illuminance Measurement dissector. */
- register_dissector(ZBEE_PROTOABBREV_ZCL_ILLUMMEAS, dissect_zbee_zcl_illum_meas, proto_zbee_zcl_illum_meas);
+ new_register_dissector(ZBEE_PROTOABBREV_ZCL_ILLUMMEAS, dissect_zbee_zcl_illum_meas, proto_zbee_zcl_illum_meas);
} /*proto_register_zbee_zcl_illum_meas*/
@@ -462,10 +462,10 @@ static const value_string zbee_zcl_temp_meas_attr_names[] = {
* none
*---------------------------------------------------------------
*/
-static void
-dissect_zbee_zcl_temp_meas(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
+static int
+dissect_zbee_zcl_temp_meas(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void* data _U_)
{
- return;
+ return tvb_captured_length(tvb);
} /*dissect_zbee_zcl_temp_meas*/
/*FUNCTION:------------------------------------------------------
@@ -654,7 +654,7 @@ proto_register_zbee_zcl_temp_meas(void)
proto_register_field_array(proto_zbee_zcl_temp_meas, hf, array_length(hf));
/* Register the ZigBee ZCL Temperature Measurement dissector. */
- register_dissector(ZBEE_PROTOABBREV_ZCL_TEMPMEAS, dissect_zbee_zcl_temp_meas, proto_zbee_zcl_temp_meas);
+ new_register_dissector(ZBEE_PROTOABBREV_ZCL_TEMPMEAS, dissect_zbee_zcl_temp_meas, proto_zbee_zcl_temp_meas);
} /*proto_register_zbee_zcl_temp_meas*/
/*FUNCTION:------------------------------------------------------
@@ -789,10 +789,10 @@ static const value_string zbee_zcl_press_meas_attr_names[] = {
* none
*---------------------------------------------------------------
*/
-static void
-dissect_zbee_zcl_press_meas(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
+static int
+dissect_zbee_zcl_press_meas(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void* data _U_)
{
- return;
+ return tvb_captured_length(tvb);
} /*dissect_zbee_zcl_press_meas*/
/*FUNCTION:------------------------------------------------------
@@ -1026,7 +1026,7 @@ proto_register_zbee_zcl_press_meas(void)
proto_register_field_array(proto_zbee_zcl_press_meas, hf, array_length(hf));
/* Register the ZigBee ZCL Pressure Measurement dissector. */
- register_dissector(ZBEE_PROTOABBREV_ZCL_PRESSMEAS, dissect_zbee_zcl_press_meas, proto_zbee_zcl_press_meas);
+ new_register_dissector(ZBEE_PROTOABBREV_ZCL_PRESSMEAS, dissect_zbee_zcl_press_meas, proto_zbee_zcl_press_meas);
} /*proto_register_zbee_zcl_press_meas*/
/*FUNCTION:------------------------------------------------------
@@ -1144,10 +1144,10 @@ static const value_string zbee_zcl_relhum_meas_attr_names[] = {
* none
*---------------------------------------------------------------
*/
-static void
-dissect_zbee_zcl_relhum_meas(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
+static int
+dissect_zbee_zcl_relhum_meas(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void* data _U_)
{
- return;
+ return tvb_captured_length(tvb);
} /*dissect_zbee_zcl_relhum_meas*/
/*FUNCTION:------------------------------------------------------
@@ -1334,7 +1334,7 @@ proto_register_zbee_zcl_relhum_meas(void)
proto_register_field_array(proto_zbee_zcl_relhum_meas, hf, array_length(hf));
/* Register the ZigBee ZCL Relative Humidity Measurement dissector. */
- register_dissector(ZBEE_PROTOABBREV_ZCL_RELHUMMEAS, dissect_zbee_zcl_relhum_meas, proto_zbee_zcl_relhum_meas);
+ new_register_dissector(ZBEE_PROTOABBREV_ZCL_RELHUMMEAS, dissect_zbee_zcl_relhum_meas, proto_zbee_zcl_relhum_meas);
} /*proto_register_zbee_zcl_relhum_meas*/