aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-rx.c
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/packet-rx.c')
-rw-r--r--epan/dissectors/packet-rx.c33
1 files changed, 12 insertions, 21 deletions
diff --git a/epan/dissectors/packet-rx.c b/epan/dissectors/packet-rx.c
index a934be7a9a..531f4f7784 100644
--- a/epan/dissectors/packet-rx.c
+++ b/epan/dissectors/packet-rx.c
@@ -412,27 +412,18 @@ dissect_rx_acks(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, int
static int
dissect_rx_flags(tvbuff_t *tvb, struct rxinfo *rxinfo, proto_tree *parent_tree, int offset)
{
- proto_tree *tree;
- proto_item *item;
- guint8 flags;
-
- flags = tvb_get_guint8(tvb, offset);
- rxinfo->flags = flags;
-
- item = proto_tree_add_uint(parent_tree, hf_rx_flags, tvb,
- offset, 1, flags);
- tree = proto_item_add_subtree(item, ett_rx_flags);
-
- proto_tree_add_boolean(tree, hf_rx_flags_free_packet, tvb,
- offset, 1, flags);
- proto_tree_add_boolean(tree, hf_rx_flags_more_packets, tvb,
- offset, 1, flags);
- proto_tree_add_boolean(tree, hf_rx_flags_last_packet, tvb,
- offset, 1, flags);
- proto_tree_add_boolean(tree, hf_rx_flags_request_ack, tvb,
- offset, 1, flags);
- proto_tree_add_boolean(tree, hf_rx_flags_clientinit, tvb,
- offset, 1, flags);
+ static const int * flags[] = {
+ &hf_rx_flags_free_packet,
+ &hf_rx_flags_more_packets,
+ &hf_rx_flags_last_packet,
+ &hf_rx_flags_request_ack,
+ &hf_rx_flags_clientinit,
+ NULL
+ };
+
+ rxinfo->flags = tvb_get_guint8(tvb, offset);
+
+ proto_tree_add_bitmask(parent_tree, tvb, offset, hf_rx_flags, ett_rx_flags, flags, ENC_NA);
offset += 1;
return offset;