diff options
author | Michael Mann <mmann78@netscape.net> | 2014-12-01 00:18:41 -0500 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2014-12-01 12:18:44 +0000 |
commit | e77507b0eac903e74389ef1bf2dfa51d4cf00aad (patch) | |
tree | d9a99ae5315842fd1d3cc957c8adac50a779e5ed /epan/dissectors/packet-rsvp.c | |
parent | 542439e64aef746512a5a8d3835e49805087c706 (diff) |
Use proto_tree_add_bitmask for groups of proto_tree_add_boolean.
Part 3 of many, but this concludes the strict conversion to proto_tree_add_bitmask. Patches to follow with use proto_tree_add_bitmask_xxx (some functions still need to be written)
Change-Id: Ic2435667c6a7f1d40602124e5044954d2a296180
Reviewed-on: https://code.wireshark.org/review/5553
Reviewed-by: Michael Mann <mmann78@netscape.net>
Petri-Dish: Michael Mann <mmann78@netscape.net>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-rsvp.c')
-rw-r--r-- | epan/dissectors/packet-rsvp.c | 43 |
1 files changed, 14 insertions, 29 deletions
diff --git a/epan/dissectors/packet-rsvp.c b/epan/dissectors/packet-rsvp.c index 6d67befa5c..ed71a2725f 100644 --- a/epan/dissectors/packet-rsvp.c +++ b/epan/dissectors/packet-rsvp.c @@ -5095,42 +5095,27 @@ dissect_rsvp_admin_status(proto_tree *ti, proto_tree *rsvp_object_tree, int rsvp_class _U_, int type) { int offset2 = offset + 4; - proto_tree *ti2, *rsvp_admin_subtree; guint32 status; + static const int * status_flags[] = { + &hf_rsvp_filter[RSVPF_ADMIN_STATUS_REFLECT], + &hf_rsvp_filter[RSVPF_ADMIN_STATUS_HANDOVER], + &hf_rsvp_filter[RSVPF_ADMIN_STATUS_LOCKOUT], + &hf_rsvp_filter[RSVPF_ADMIN_STATUS_INHIBIT], + &hf_rsvp_filter[RSVPF_ADMIN_STATUS_CALL_MGMT], + &hf_rsvp_filter[RSVPF_ADMIN_STATUS_TESTING], + &hf_rsvp_filter[RSVPF_ADMIN_STATUS_DOWN], + &hf_rsvp_filter[RSVPF_ADMIN_STATUS_DELETE], + NULL + }; proto_item_set_text(ti, "ADMIN STATUS: "); switch(type) { case 1: proto_tree_add_uint(rsvp_object_tree, hf_rsvp_ctype, tvb, offset+3, 1, type); status = tvb_get_ntohl(tvb, offset2); - ti2 = proto_tree_add_item(rsvp_object_tree, hf_rsvp_admin_status, tvb, offset2, 4, ENC_BIG_ENDIAN); - rsvp_admin_subtree = - proto_item_add_subtree(ti2, TREE(TT_ADMIN_STATUS_FLAGS)); - - proto_tree_add_boolean(rsvp_admin_subtree, - hf_rsvp_filter[RSVPF_ADMIN_STATUS_REFLECT], - tvb, offset2, 4, status); - proto_tree_add_boolean(rsvp_admin_subtree, - hf_rsvp_filter[RSVPF_ADMIN_STATUS_HANDOVER], - tvb, offset2, 4, status); - proto_tree_add_boolean(rsvp_admin_subtree, - hf_rsvp_filter[RSVPF_ADMIN_STATUS_LOCKOUT], - tvb, offset2, 4, status); - proto_tree_add_boolean(rsvp_admin_subtree, - hf_rsvp_filter[RSVPF_ADMIN_STATUS_INHIBIT], - tvb, offset2, 4, status); - proto_tree_add_boolean(rsvp_admin_subtree, - hf_rsvp_filter[RSVPF_ADMIN_STATUS_CALL_MGMT], - tvb, offset2, 4, status); - proto_tree_add_boolean(rsvp_admin_subtree, - hf_rsvp_filter[RSVPF_ADMIN_STATUS_TESTING], - tvb, offset2, 4, status); - proto_tree_add_boolean(rsvp_admin_subtree, - hf_rsvp_filter[RSVPF_ADMIN_STATUS_DOWN], - tvb, offset2, 4, status); - proto_tree_add_boolean(rsvp_admin_subtree, - hf_rsvp_filter[RSVPF_ADMIN_STATUS_DELETE], - tvb, offset2, 4, status); + + proto_tree_add_bitmask(rsvp_object_tree, tvb, offset2, hf_rsvp_admin_status, TREE(TT_ADMIN_STATUS_FLAGS), status_flags, ENC_BIG_ENDIAN); + proto_item_set_text(ti, "ADMIN-STATUS: %s%s%s%s%s%s%s%s", (status & (1<<31)) ? "Reflect " : "", (status & (1<<6)) ? "Handover " : "", |