diff options
author | Anders Broman <anders.broman@ericsson.com> | 2008-03-03 20:15:05 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2008-03-03 20:15:05 +0000 |
commit | 2c4c5a086b69fd2264ce0dc99ed3000432373fac (patch) | |
tree | 13d13512b587f872501f6b60f2a30bb9a9a9983e /epan/dissectors/packet-bacapp.c | |
parent | 76c146ee9739ad36b8d93dcd3504a07b4031a886 (diff) |
From Alan McBride :
BACnet handling of readPropertyMultiple request / response.
svn path=/trunk/; revision=24537
Diffstat (limited to 'epan/dissectors/packet-bacapp.c')
-rw-r--r-- | epan/dissectors/packet-bacapp.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/epan/dissectors/packet-bacapp.c b/epan/dissectors/packet-bacapp.c index 4f8a546e17..af8bb031a1 100644 --- a/epan/dissectors/packet-bacapp.c +++ b/epan/dissectors/packet-bacapp.c @@ -4520,6 +4520,7 @@ fReadAccessSpecification (tvbuff_t *tvb, proto_tree *subtree, guint offset) guint lastoffset = 0; guint8 tag_no, tag_info; guint32 lvt; + proto_item *tt; while ((tvb_length_remaining(tvb, offset) > 0)&&(offset>lastoffset)) { /* exit loop if nothing happens inside */ lastoffset = offset; @@ -4536,6 +4537,8 @@ fReadAccessSpecification (tvbuff_t *tvb, proto_tree *subtree, guint offset) break; case 1: /* listOfPropertyReferences */ if (tag_is_opening(tag_info)) { + tt = proto_tree_add_text(subtree, tvb, offset, 1, "listOfPropertyReferences"); + subtree = proto_item_add_subtree(tt, ett_bacapp_value); offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt); offset = fBACnetPropertyReference (tvb, subtree, offset, 1); break; @@ -4565,7 +4568,7 @@ fReadAccessResult (tvbuff_t *tvb, proto_tree *tree, guint offset) if (tag_is_closing(tag_info)) { offset += fTagHeaderTree (tvb, subtree, offset, &tag_no, &tag_info, &lvt); - if (tag_no == 4 || tag_no == 5) subtree = tree; /* Value and error have extra subtree */ + if ((tag_no == 4 || tag_no == 5) && (subtree != tree)) subtree = subtree->parent; /* Value and error have extra subtree */ continue; } |