aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/profinet
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2015-11-04 08:45:11 -0500
committerMichael Mann <mmann78@netscape.net>2015-11-04 15:51:07 +0000
commit02dcf3cc72c1156a72bc6f86f07702382ff0d22e (patch)
treebd188678bdfd923cb23955bbd1fab0c5165cde72 /plugins/profinet
parentbd44ceebd56741ca531d8e934ef9e70b40e6d91a (diff)
Don't allow DCE/RPC dissector table to have duplicates
Add "placeholders" in Profinet dissector to make that possible. Change-Id: I000069ec72b5810c5675a30df1c121aa179000b3 Reviewed-on: https://code.wireshark.org/review/11557 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'plugins/profinet')
-rw-r--r--plugins/profinet/packet-dcerpc-pn-io.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/plugins/profinet/packet-dcerpc-pn-io.c b/plugins/profinet/packet-dcerpc-pn-io.c
index c7a47c88d6..72fbf08ec0 100644
--- a/plugins/profinet/packet-dcerpc-pn-io.c
+++ b/plugins/profinet/packet-dcerpc-pn-io.c
@@ -59,6 +59,9 @@ void proto_register_pn_io(void);
void proto_reg_handoff_pn_io(void);
static int proto_pn_io = -1;
+static int proto_pn_io_controller = -1;
+static int proto_pn_io_supervisor = -1;
+static int proto_pn_io_parameterserver = -1;
static int hf_pn_io_opnum = -1;
static int hf_pn_io_reserved16 = -1;
@@ -12249,6 +12252,12 @@ proto_register_pn_io (void)
expert_module_t* expert_pn_io;
proto_pn_io = proto_register_protocol ("PROFINET IO", "PNIO", "pn_io");
+
+ /* Created to remove Decode As confusion */
+ proto_pn_io_controller = proto_register_protocol ("PROFINET IO (Controller)", "PNIO (Controller)", "pn_io_controller");
+ proto_pn_io_supervisor = proto_register_protocol ("PROFINET IO (Supervisor)", "PNIO (Supervisor)", "pn_io_supervisor");
+ proto_pn_io_parameterserver = proto_register_protocol ("PROFINET IO (Parameter Server)", "PNIO (Parameter Server)", "pn_io_parameterserver");
+
proto_register_field_array (proto_pn_io, hf, array_length (hf));
proto_register_subtree_array (ett, array_length (ett));
expert_pn_io = expert_register_protocol(proto_pn_io);
@@ -12269,9 +12278,9 @@ proto_reg_handoff_pn_io (void)
{
/* Register the protocols as dcerpc */
dcerpc_init_uuid (proto_pn_io, ett_pn_io, &uuid_pn_io_device, ver_pn_io_device, pn_io_dissectors, hf_pn_io_opnum);
- dcerpc_init_uuid (proto_pn_io, ett_pn_io, &uuid_pn_io_controller, ver_pn_io_controller, pn_io_dissectors, hf_pn_io_opnum);
- dcerpc_init_uuid (proto_pn_io, ett_pn_io, &uuid_pn_io_supervisor, ver_pn_io_supervisor, pn_io_dissectors, hf_pn_io_opnum);
- dcerpc_init_uuid (proto_pn_io, ett_pn_io, &uuid_pn_io_parameterserver, ver_pn_io_parameterserver, pn_io_dissectors, hf_pn_io_opnum);
+ dcerpc_init_uuid (proto_pn_io_controller, ett_pn_io, &uuid_pn_io_controller, ver_pn_io_controller, pn_io_dissectors, hf_pn_io_opnum);
+ dcerpc_init_uuid (proto_pn_io_supervisor, ett_pn_io, &uuid_pn_io_supervisor, ver_pn_io_supervisor, pn_io_dissectors, hf_pn_io_opnum);
+ dcerpc_init_uuid (proto_pn_io_parameterserver, ett_pn_io, &uuid_pn_io_parameterserver, ver_pn_io_parameterserver, pn_io_dissectors, hf_pn_io_opnum);
heur_dissector_add("pn_rt", dissect_PNIO_heur, "PROFINET IO", "pn_io_pn_rt", proto_pn_io, HEURISTIC_ENABLE);
}