aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-nstrace.c
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2015-04-22 07:57:37 -0400
committerMichael Mann <mmann78@netscape.net>2015-04-22 23:24:45 +0000
commit8d6324f759639c7d3c0cab839ca1d3c42c93f895 (patch)
treee2a36618d1c6892347c03bf479fc3eb15f5d9571 /epan/dissectors/packet-nstrace.c
parent825aa502e7a1730141a3bfbf463f23167fb0b975 (diff)
Convert proto_tree_add_boolean to proto_tree_add_bitmask_[value|value_with_flags|list]
Part 2 of a few Change-Id: Ic1f1aafe2ed02dce95b15c03a91cbd68807a5cf4 Reviewed-on: https://code.wireshark.org/review/8165 Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com> Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan/dissectors/packet-nstrace.c')
-rw-r--r--epan/dissectors/packet-nstrace.c41
1 files changed, 13 insertions, 28 deletions
diff --git a/epan/dissectors/packet-nstrace.c b/epan/dissectors/packet-nstrace.c
index 4bde2421b2..a3ceb89504 100644
--- a/epan/dissectors/packet-nstrace.c
+++ b/epan/dissectors/packet-nstrace.c
@@ -406,11 +406,8 @@ dissect_nstrace(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
struct nstr_phdr *pnstr = &(pinfo->pseudo_header->nstr);
tvbuff_t *next_tvb_eth_client;
guint8 offset;
- guint i, bpos;
wmem_strbuf_t *flags_strbuf = wmem_strbuf_new_label(wmem_packet_scope());
- static const gchar *flags[] = {"FP", "FR", "DFD", "SRSS", "RSSH"};
- gboolean first_flag = TRUE;
- guint8 flagoffset, flagval;
+ guint8 flagoffset;
guint8 src_vmname_len = 0, dst_vmname_len = 0;
guint8 variable_ns_len = 0;
@@ -456,34 +453,22 @@ dissect_nstrace(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
case NSPR_HEADER_VERSION204:
-
- flagoffset = pnstr->clflags_offset;
- flagval = tvb_get_guint8(tvb, flagoffset);
-
- for (i = 0; i < 5; i++) {
- bpos = 1 << i;
- if (flagval & bpos) {
- if (first_flag) {
- wmem_strbuf_truncate(flags_strbuf, 0);
- }
- wmem_strbuf_append_printf(flags_strbuf, "%s%s", first_flag ? "" : ", ", flags[i]);
- first_flag = FALSE;
- }
- }
+ {
+ static const int * clflags[] = {
+ &hf_ns_clflags_res,
+ &hf_ns_clflags_rssh,
+ &hf_ns_clflags_rss,
+ &hf_ns_clflags_dfd,
+ &hf_ns_clflags_fr,
+ &hf_ns_clflags_fp,
+ NULL
+ };
proto_tree_add_item(ns_tree, hf_ns_snode, tvb, pnstr->srcnodeid_offset, 2, ENC_LITTLE_ENDIAN);
proto_tree_add_item(ns_tree, hf_ns_dnode, tvb, pnstr->destnodeid_offset, 2, ENC_LITTLE_ENDIAN);
- flagitem = proto_tree_add_uint_format_value(ns_tree, hf_ns_clflags, tvb, flagoffset, 1, flagval,
- "0x%02x (%s)", flagval, wmem_strbuf_get_str(flags_strbuf));
- flagtree = proto_item_add_subtree(flagitem, ett_ns_flags);
-
- proto_tree_add_boolean(flagtree, hf_ns_clflags_res, tvb, flagoffset, 1, flagval);
- proto_tree_add_boolean(flagtree, hf_ns_clflags_rssh, tvb, flagoffset, 1, flagval);
- proto_tree_add_boolean(flagtree, hf_ns_clflags_rss, tvb, flagoffset, 1, flagval);
- proto_tree_add_boolean(flagtree, hf_ns_clflags_dfd, tvb, flagoffset, 1, flagval);
- proto_tree_add_boolean(flagtree, hf_ns_clflags_fr, tvb, flagoffset, 1, flagval);
- proto_tree_add_boolean(flagtree, hf_ns_clflags_fp, tvb, flagoffset, 1, flagval);
+ proto_tree_add_bitmask(ns_tree, tvb, pnstr->clflags_offset, hf_ns_clflags, ett_ns_flags, clflags, ENC_NA);
+ }
/* fall through to next case */
case NSPR_HEADER_VERSION203: