aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-bacapp.c
diff options
context:
space:
mode:
authordesolat <nuabaranda@web.de>2014-11-08 13:05:03 +0100
committerEvan Huus <eapache@gmail.com>2014-11-08 20:52:22 +0000
commitae61a41e578692db7e89bae2f3f1a90918c2e62d (patch)
treed9e16e14cda6fab42b53ab4a5eab8ea1d30506ec /epan/dissectors/packet-bacapp.c
parent79d3c33c17978c713568d38b6432d3d6d7124e63 (diff)
BACAPP: fix dissection of event parameters for event notifications of Event_Type Change_of_Characterstring
Implementation for this event parameter type was missing Bug: 9625 Change-Id: I575d387ec4764fa1ecd365624d13e3f41e2473c6 Reviewed-on: https://code.wireshark.org/review/5189 Reviewed-by: Michael Mann <mmann78@netscape.net> Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Evan Huus <eapache@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-bacapp.c')
-rw-r--r--epan/dissectors/packet-bacapp.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/epan/dissectors/packet-bacapp.c b/epan/dissectors/packet-bacapp.c
index d94db82c6c..398e02e9d3 100644
--- a/epan/dissectors/packet-bacapp.c
+++ b/epan/dissectors/packet-bacapp.c
@@ -8067,6 +8067,27 @@ fNotificationParameters(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gui
}
break;
case 17: /* change-of-characterstring */
+ while (tvb_reported_length_remaining(tvb, offset) > 0) { /* exit loop if nothing happens inside */
+ lastoffset = offset;
+ switch (fTagNo(tvb, offset)) {
+ case 0:
+ /* changed-value (CharacterString) */
+ offset = fCharacterString(tvb, pinfo, subtree, offset, "changed-value: ");
+ break;
+ case 1:
+ offset = fBitStringTagVS(tvb, pinfo, subtree, offset,
+ "status-flags: ", BACnetStatusFlags);
+ break;
+ case 2:
+ /* alarm-value (CharacterString) */
+ offset = fCharacterString(tvb, pinfo, subtree, offset, "alarm-value: ");
+ lastoffset = offset;
+ break;
+ default:
+ break;
+ }
+ if (offset == lastoffset) break; /* nothing happened, exit loop */
+ }
break;
case 18: /* change-of-status-flags */
break;