aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-rsvp.c
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2014-12-01 00:18:41 -0500
committerAnders Broman <a.broman58@gmail.com>2014-12-01 12:18:44 +0000
commite77507b0eac903e74389ef1bf2dfa51d4cf00aad (patch)
treed9a99ae5315842fd1d3cc957c8adac50a779e5ed /epan/dissectors/packet-rsvp.c
parent542439e64aef746512a5a8d3835e49805087c706 (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.c43
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 " : "",