aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-srvloc.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-srvloc.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-srvloc.c')
-rw-r--r--epan/dissectors/packet-srvloc.c48
1 files changed, 21 insertions, 27 deletions
diff --git a/epan/dissectors/packet-srvloc.c b/epan/dissectors/packet-srvloc.c
index c9b7741290..1483aef0b5 100644
--- a/epan/dissectors/packet-srvloc.c
+++ b/epan/dissectors/packet-srvloc.c
@@ -805,8 +805,8 @@ static int
dissect_srvloc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
{
int offset = 0;
- proto_item *ti, *tf;
- proto_tree *srvloc_tree, *srvloc_flags;
+ proto_item *ti;
+ proto_tree *srvloc_tree;
guint8 version;
guint8 function;
guint16 encoding;
@@ -837,23 +837,20 @@ dissect_srvloc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _
proto_tree_add_uint(srvloc_tree, hf_srvloc_function, tvb, offset + 1, 1,
function);
if (version < 2) {
+ static const int * v1_flags[] = {
+ &hf_srvloc_flags_v1_overflow,
+ &hf_srvloc_flags_v1_monolingual,
+ &hf_srvloc_flags_v1_url_auth,
+ &hf_srvloc_flags_v1_attribute_auth,
+ &hf_srvloc_flags_v1_fresh,
+ NULL
+ };
+
length = tvb_get_ntohs(tvb, offset + 2);
proto_tree_add_uint(srvloc_tree, hf_srvloc_pktlen, tvb, offset + 2, 2,
length);
flags = tvb_get_guint8(tvb, offset + 4);
- tf = proto_tree_add_uint(srvloc_tree, hf_srvloc_flags_v1, tvb, offset + 4, 1,
- flags);
- srvloc_flags = proto_item_add_subtree(tf, ett_srvloc_flags);
- proto_tree_add_boolean(srvloc_flags, hf_srvloc_flags_v1_overflow,
- tvb, offset+4, 1, flags);
- proto_tree_add_boolean(srvloc_flags, hf_srvloc_flags_v1_monolingual,
- tvb, offset+4, 1, flags);
- proto_tree_add_boolean(srvloc_flags, hf_srvloc_flags_v1_url_auth,
- tvb, offset+4, 1, flags);
- proto_tree_add_boolean(srvloc_flags, hf_srvloc_flags_v1_attribute_auth,
- tvb, offset+4, 1, flags);
- proto_tree_add_boolean(srvloc_flags, hf_srvloc_flags_v1_fresh,
- tvb, offset+4, 1, flags);
+ proto_tree_add_bitmask(srvloc_tree, tvb, offset + 4, hf_srvloc_flags_v1, ett_srvloc_flags, v1_flags, ENC_NA);
proto_tree_add_text(srvloc_tree, tvb, offset + 5, 1, "Dialect: %u",
tvb_get_guint8(tvb, offset + 5));
proto_tree_add_text(srvloc_tree, tvb, offset + 6, 2, "Language: %s",
@@ -1058,19 +1055,16 @@ dissect_srvloc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _
}
}
else { /* Version 2 */
+ static const int * v2_flags[] = {
+ &hf_srvloc_flags_v2_overflow,
+ &hf_srvloc_flags_v2_fresh,
+ &hf_srvloc_flags_v2_reqmulti,
+ NULL
+ };
+
length = tvb_get_ntoh24(tvb, offset + 2);
- proto_tree_add_uint(srvloc_tree, hf_srvloc_pktlen, tvb, offset + 2, 3,
- length);
- flags = tvb_get_ntohs(tvb, offset + 5);
- tf = proto_tree_add_uint(srvloc_tree, hf_srvloc_flags_v2, tvb, offset + 5, 2,
- flags);
- srvloc_flags = proto_item_add_subtree(tf, ett_srvloc_flags);
- proto_tree_add_boolean(srvloc_flags, hf_srvloc_flags_v2_overflow,
- tvb, offset+5, 1, flags);
- proto_tree_add_boolean(srvloc_flags, hf_srvloc_flags_v2_fresh,
- tvb, offset+5, 1, flags);
- proto_tree_add_boolean(srvloc_flags, hf_srvloc_flags_v2_reqmulti,
- tvb, offset+5, 1, flags);
+ proto_tree_add_uint(srvloc_tree, hf_srvloc_pktlen, tvb, offset + 2, 3, length);
+ proto_tree_add_bitmask(srvloc_tree, tvb, offset + 5, hf_srvloc_flags_v2, ett_srvloc_flags, v2_flags, ENC_BIG_ENDIAN);
next_ext_off = tvb_get_ntoh24(tvb, offset + 7);
proto_tree_add_uint(srvloc_tree, hf_srvloc_nextextoff, tvb, offset + 7, 3,