diff options
author | Michael Mann <mmann78@netscape.net> | 2014-11-30 12:51:30 -0500 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2014-12-01 08:52:03 +0000 |
commit | 4f9af8608cc4279b3f559db3d2f3bc6224ad58a5 (patch) | |
tree | dc87094a132b0fe6284bedb7573714038d017627 /epan/dissectors/packet-icmp.c | |
parent | 86c659c2721a659641aded94ec59d1a863cc86db (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.c | 48 |
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 */ |