aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/epan/profinet/packet-dcerpc-pn-io.c
diff options
context:
space:
mode:
authorMatthias Dietrich <matthias.dietrich@gmx.fr>2022-05-16 22:16:34 +0200
committerA Wireshark GitLab Utility <gerald+gitlab-utility@wireshark.org>2022-05-21 07:52:07 +0000
commit85eb9fba4d32ca9223b375f9456ba62437b45336 (patch)
treedcc8e7db3d9fff9b6aded78c4a4c287dd34f86cf /plugins/epan/profinet/packet-dcerpc-pn-io.c
parent225e90564d1b52fc99ddc88acdca87fe7858628d (diff)
Dissect PA Profile IO data
Diffstat (limited to 'plugins/epan/profinet/packet-dcerpc-pn-io.c')
-rw-r--r--plugins/epan/profinet/packet-dcerpc-pn-io.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/plugins/epan/profinet/packet-dcerpc-pn-io.c b/plugins/epan/profinet/packet-dcerpc-pn-io.c
index 1fca9ab2ba..d2968cdcf8 100644
--- a/plugins/epan/profinet/packet-dcerpc-pn-io.c
+++ b/plugins/epan/profinet/packet-dcerpc-pn-io.c
@@ -3160,8 +3160,8 @@ static const value_string pn_io_pa_profile_physical_block_parent_class_vals[] =
static const value_string pn_io_pa_profile_function_block_class_vals[] = {
{ 1, "Input" },
{ 2, "Output" },
- { 3, "Further Inputs" },
- { 4, "Further Outputs" },
+ { 3, "Further Input" },
+ { 4, "Further Output" },
{ 128, "Manuf. specific Input" },
{ 129, "Manuf. specific Output" },
{ 0, NULL }
@@ -10935,6 +10935,7 @@ dissect_DataDescription(tvbuff_t *tvb, int offset,
io_data_object = (ioDataObject*)wmem_list_frame_data(frame);
if (io_data_object->slotNr == tmp_io_data_object->slotNr && io_data_object->subSlotNr == tmp_io_data_object->subSlotNr) {
/* Write additional data from dissect_ExpectedSubmoduleBlockReq_block() to corresponding io_data_object */
+ io_data_object->api = tmp_io_data_object->api;
io_data_object->moduleIdentNr = tmp_io_data_object->moduleIdentNr;
io_data_object->subModuleIdentNr = tmp_io_data_object->subModuleIdentNr;
io_data_object->length = u16SubmoduleDataLength;
@@ -11010,8 +11011,16 @@ resolve_pa_profile_submodule_name(ioDataObject *io_data_object)
break;
case PA_PROFILE_BLOCK_FB:
- parent_class_name = try_val_to_str(parent_class, pn_io_pa_profile_function_block_parent_class_vals);
class_name = try_val_to_str(class, pn_io_pa_profile_function_block_class_vals);
+ if (class <= 2u)
+ {
+ parent_class_name = try_val_to_str(parent_class, pn_io_pa_profile_function_block_parent_class_vals);
+ }
+ else
+ {
+ parent_class_name = (class <= 4u) ? "Analog" : "";
+ }
+
if ((parent_class_name != NULL) && (class_name != NULL))
{
(void)snprintf(io_data_object->moduleNameStr, MAX_NAMELENGTH, "%s - %s %s", block_object_name, parent_class_name, class_name);