diff options
Diffstat (limited to 'epan/dissectors/packet-rx.c')
-rw-r--r-- | epan/dissectors/packet-rx.c | 33 |
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; |