aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-icmp.c
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2014-11-30 12:51:30 -0500
committerAnders Broman <a.broman58@gmail.com>2014-12-01 08:52:03 +0000
commit4f9af8608cc4279b3f559db3d2f3bc6224ad58a5 (patch)
treedc87094a132b0fe6284bedb7573714038d017627 /epan/dissectors/packet-icmp.c
parent86c659c2721a659641aded94ec59d1a863cc86db (diff)
Use proto_tree_add_bitmask for groups of proto_tree_add_boolean.
Part 2 of many Change-Id: I50815e7738b011382392f3078a7107d3d9eec4ec Reviewed-on: https://code.wireshark.org/review/5542 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-icmp.c')
-rw-r--r--epan/dissectors/packet-icmp.c48
1 files changed, 15 insertions, 33 deletions
diff --git a/epan/dissectors/packet-icmp.c b/epan/dissectors/packet-icmp.c
index de871c7e7f..6e0e5bebc9 100644
--- a/epan/dissectors/packet-icmp.c
+++ b/epan/dissectors/packet-icmp.c
@@ -360,12 +360,24 @@ dissect_mip_extensions(tvbuff_t * tvb, int offset, proto_tree * tree)
{
guint8 type;
guint8 length;
- guint16 flags;
proto_item *ti;
proto_tree *mip_tree = NULL;
- proto_tree *flags_tree = NULL;
gint numCOAs;
gint i;
+ static const int * flags[] = {
+ &hf_icmp_mip_r,
+ &hf_icmp_mip_b,
+ &hf_icmp_mip_h,
+ &hf_icmp_mip_f,
+ &hf_icmp_mip_m,
+ &hf_icmp_mip_g,
+ &hf_icmp_mip_v,
+ &hf_icmp_mip_rt,
+ &hf_icmp_mip_u,
+ &hf_icmp_mip_x,
+ &hf_icmp_mip_reserved,
+ NULL
+ };
/* Not much to do if we're not parsing everything */
if (!tree)
@@ -416,37 +428,7 @@ dissect_mip_extensions(tvbuff_t * tvb, int offset, proto_tree * tree)
ENC_BIG_ENDIAN);
offset += 2;
/* flags */
- flags = tvb_get_ntohs(tvb, offset);
- ti = proto_tree_add_uint(mip_tree,
- hf_icmp_mip_flags, tvb,
- offset, 2, flags);
- flags_tree =
- proto_item_add_subtree(ti, ett_icmp_mip_flags);
- proto_tree_add_boolean(flags_tree, hf_icmp_mip_r,
- tvb, offset, 2, flags);
- proto_tree_add_boolean(flags_tree, hf_icmp_mip_b,
- tvb, offset, 2, flags);
- proto_tree_add_boolean(flags_tree, hf_icmp_mip_h,
- tvb, offset, 2, flags);
- proto_tree_add_boolean(flags_tree, hf_icmp_mip_f,
- tvb, offset, 2, flags);
- proto_tree_add_boolean(flags_tree, hf_icmp_mip_m,
- tvb, offset, 2, flags);
- proto_tree_add_boolean(flags_tree, hf_icmp_mip_g,
- tvb, offset, 2, flags);
- proto_tree_add_boolean(flags_tree, hf_icmp_mip_v,
- tvb, offset, 2, flags);
- proto_tree_add_boolean(flags_tree, hf_icmp_mip_rt,
- tvb, offset, 2, flags);
- proto_tree_add_boolean(flags_tree, hf_icmp_mip_u,
- tvb, offset, 2, flags);
- proto_tree_add_boolean(flags_tree, hf_icmp_mip_x,
- tvb, offset, 2, flags);
-
- /* Reserved */
- proto_tree_add_uint(flags_tree,
- hf_icmp_mip_reserved, tvb,
- offset, 2, flags);
+ proto_tree_add_bitmask(mip_tree, tvb, offset, hf_icmp_mip_flags, ett_icmp_mip_flags, flags, ENC_BIG_ENDIAN);
offset += 2;
/* COAs */