summaryrefslogtreecommitdiff
path: root/epan/dissectors/packet-sercosiii.c
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/packet-sercosiii.c')
-rw-r--r--epan/dissectors/packet-sercosiii.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/epan/dissectors/packet-sercosiii.c b/epan/dissectors/packet-sercosiii.c
index 517f45a519..f12a10908e 100644
--- a/epan/dissectors/packet-sercosiii.c
+++ b/epan/dissectors/packet-sercosiii.c
@@ -1161,8 +1161,8 @@ static void dissect_siii_at(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
}
/* Main dissector entry */
-static void
-dissect_siii(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+static int
+dissect_siii(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
{
proto_item *ti;
proto_tree *siii_tree;
@@ -1182,7 +1182,7 @@ dissect_siii(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
* to dissect it as a normal SercosIII packet.
*/
if (dissector_try_heuristic(heur_subdissector_list, tvb, pinfo, tree, &hdtbl_entry, NULL))
- return;
+ return tvb_captured_length(tvb);
/* check what we got on our hand */
type = tvb_get_guint8(tvb, 0);
@@ -1209,6 +1209,8 @@ dissect_siii(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
dissect_siii_at(tvb, pinfo, siii_tree);
else
dissect_siii_mdt(tvb, pinfo, siii_tree);
+
+ return tvb_captured_length(tvb);
}
static void
@@ -1617,7 +1619,7 @@ proto_register_sercosiii(void)
proto_siii = proto_register_protocol("SERCOS III V1.1",
"SERCOS III V1.1", "siii");
- register_dissector("sercosiii", dissect_siii, proto_siii);
+ new_register_dissector("sercosiii", dissect_siii, proto_siii);
/* subdissector code */
heur_subdissector_list = register_heur_dissector_list("sercosiii");
@@ -1634,7 +1636,7 @@ proto_reg_handoff_sercosiii(void)
{
dissector_handle_t siii_handle;
- siii_handle = create_dissector_handle(dissect_siii, proto_siii);
+ siii_handle = new_create_dissector_handle(dissect_siii, proto_siii);
dissector_add_uint("ethertype", ETHERTYPE_SERCOS, siii_handle);
}