aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-dplay.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-dplay.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-dplay.c')
-rw-r--r--epan/dissectors/packet-dplay.c126
1 files changed, 57 insertions, 69 deletions
diff --git a/epan/dissectors/packet-dplay.c b/epan/dissectors/packet-dplay.c
index 6854c7ab5d..11df65c128 100644
--- a/epan/dissectors/packet-dplay.c
+++ b/epan/dissectors/packet-dplay.c
@@ -462,34 +462,30 @@ static gint dissect_sockaddr_in(proto_tree *tree, tvbuff_t *tvb, gint offset)
static gint dissect_session_desc(proto_tree *tree, tvbuff_t *tvb, gint offset)
{
- guint32 flags;
- proto_item *flags_item;
- proto_tree *flags_tree;
-
- flags = tvb_get_letohl(tvb, offset+4);
+ static const int * flags[] = {
+ &hf_dplay_flags_no_sess_desc_changes,
+ &hf_dplay_flags_acqire_voice,
+ &hf_dplay_flags_optimize_latency,
+ &hf_dplay_flags_preserve_order,
+ &hf_dplay_flags_reliable,
+ &hf_dplay_flags_server_player_only,
+ &hf_dplay_flags_route,
+ &hf_dplay_flags_password_req,
+ &hf_dplay_flags_private_session,
+ &hf_dplay_flags_use_auth,
+ &hf_dplay_flags_no_player_updates,
+ &hf_dplay_flags_use_ping,
+ &hf_dplay_flags_can_join,
+ &hf_dplay_flags_ignored,
+ &hf_dplay_flags_short_player_msg,
+ &hf_dplay_flags_migrate_host,
+ &hf_dplay_flags_0002,
+ &hf_dplay_flags_no_create_players,
+ NULL
+ };
proto_tree_add_item(tree, hf_dplay_sess_desc_length, tvb, offset, 4, ENC_LITTLE_ENDIAN); offset += 4;
- flags_item = proto_tree_add_item(tree, hf_dplay_sess_desc_flags, tvb, offset, 4, ENC_LITTLE_ENDIAN);
- flags_tree = proto_item_add_subtree(flags_item, ett_dplay_sess_desc_flags);
- proto_tree_add_boolean(flags_tree, hf_dplay_flags_no_sess_desc_changes, tvb, offset, 4, flags);
- proto_tree_add_boolean(flags_tree, hf_dplay_flags_acqire_voice, tvb, offset, 4, flags);
- proto_tree_add_boolean(flags_tree, hf_dplay_flags_optimize_latency, tvb, offset, 4, flags);
- proto_tree_add_boolean(flags_tree, hf_dplay_flags_preserve_order, tvb, offset, 4, flags);
- proto_tree_add_boolean(flags_tree, hf_dplay_flags_reliable, tvb, offset, 4, flags);
- proto_tree_add_boolean(flags_tree, hf_dplay_flags_server_player_only, tvb, offset, 4, flags);
- proto_tree_add_boolean(flags_tree, hf_dplay_flags_route, tvb, offset, 4, flags);
- proto_tree_add_boolean(flags_tree, hf_dplay_flags_password_req, tvb, offset, 4, flags);
- proto_tree_add_boolean(flags_tree, hf_dplay_flags_private_session, tvb, offset, 4, flags);
- proto_tree_add_boolean(flags_tree, hf_dplay_flags_use_auth, tvb, offset, 4, flags);
- proto_tree_add_boolean(flags_tree, hf_dplay_flags_no_player_updates, tvb, offset, 4, flags);
- proto_tree_add_boolean(flags_tree, hf_dplay_flags_use_ping, tvb, offset, 4, flags);
- proto_tree_add_boolean(flags_tree, hf_dplay_flags_can_join, tvb, offset, 4, flags);
- proto_tree_add_boolean(flags_tree, hf_dplay_flags_ignored, tvb, offset, 4, flags);
- proto_tree_add_boolean(flags_tree, hf_dplay_flags_short_player_msg, tvb, offset, 4, flags);
- proto_tree_add_boolean(flags_tree, hf_dplay_flags_migrate_host, tvb, offset, 4, flags);
- proto_tree_add_boolean(flags_tree, hf_dplay_flags_0002, tvb, offset, 4, flags);
- proto_tree_add_boolean(flags_tree, hf_dplay_flags_no_create_players, tvb, offset, 4, flags);
- offset += 4;
+ proto_tree_add_bitmask(tree, tvb, offset, hf_dplay_sess_desc_flags, ett_dplay_sess_desc_flags, flags, ENC_LITTLE_ENDIAN); offset += 4;
proto_tree_add_item(tree, hf_dplay_instance_guid, tvb, offset, 16, ENC_BIG_ENDIAN); offset += 16;
proto_tree_add_item(tree, hf_dplay_game_guid, tvb, offset, 16, ENC_BIG_ENDIAN); offset += 16;
@@ -509,23 +505,20 @@ static gint dissect_session_desc(proto_tree *tree, tvbuff_t *tvb, gint offset)
static gint dissect_packed_player(proto_tree *tree, tvbuff_t *tvb, gint offset)
{
- proto_tree *flags_tree;
- proto_item *flags_item;
- guint32 flags, sn_len, ln_len, sd_len, pd_len, num_players, i;
+ guint32 sn_len, ln_len, sd_len, pd_len, num_players, i;
gint size;
+ static const int * flags[] = {
+ &hf_dplay_pp_flag_sending,
+ &hf_dplay_pp_flag_in_group,
+ &hf_dplay_pp_flag_nameserver,
+ &hf_dplay_pp_flag_sysplayer,
+ NULL
+ };
size = tvb_get_letohl(tvb, offset);
proto_tree_add_item(tree, hf_dplay_pp_size, tvb, offset, 4, ENC_LITTLE_ENDIAN); offset += 4;
- flags = tvb_get_letohl(tvb, offset);
- flags_item = proto_tree_add_item(tree, hf_dplay_pp_flags, tvb, offset, 4, ENC_LITTLE_ENDIAN);
- flags_tree = proto_item_add_subtree(flags_item, ett_dplay_pp_flags);
- proto_tree_add_boolean(flags_tree, hf_dplay_pp_flag_sending, tvb, offset, 4, flags);
- proto_tree_add_boolean(flags_tree, hf_dplay_pp_flag_in_group, tvb, offset, 4, flags);
- proto_tree_add_boolean(flags_tree, hf_dplay_pp_flag_nameserver, tvb, offset, 4, flags);
- proto_tree_add_boolean(flags_tree, hf_dplay_pp_flag_sysplayer, tvb, offset, 4, flags);
- offset += 4;
-
+ proto_tree_add_bitmask(tree, tvb, offset, hf_dplay_pp_flags, ett_dplay_pp_flags, flags, ENC_LITTLE_ENDIAN); offset += 4;
proto_tree_add_item(tree, hf_dplay_pp_id, tvb, offset, 4, ENC_NA); offset += 4;
sn_len = tvb_get_letohl(tvb, offset);
@@ -600,21 +593,22 @@ static gint dissect_dplay_super_packed_player(proto_tree *tree, tvbuff_t *tvb, g
guint32 have_short_name, have_long_name, sp_length_type, pd_length_type;
guint32 player_count_type, have_parent_id, shortcut_count_type;
guint32 player_data_length, sp_data_length, player_count, shortcut_count;
- proto_item *flags_item = NULL, *im_item = NULL;
- proto_tree *flags_tree = NULL, *im_tree = NULL;
+ proto_item *im_item = NULL;
+ proto_tree *im_tree = NULL;
gint len;
+ static const int * ssp_flags[] = {
+ &hf_dplay_spp_flags_sending,
+ &hf_dplay_spp_flags_in_group,
+ &hf_dplay_spp_flags_nameserver,
+ &hf_dplay_spp_flags_sysplayer,
+ NULL
+ };
proto_tree_add_item(tree, hf_dplay_spp_size, tvb, offset, 4, ENC_LITTLE_ENDIAN); offset += 4;
flags = tvb_get_letohl(tvb, offset);
is_sysplayer = flags & 0x00000001;
- flags_item = proto_tree_add_item(tree, hf_dplay_spp_flags, tvb, offset, 4, ENC_LITTLE_ENDIAN);
- flags_tree = proto_item_add_subtree(flags_item, ett_dplay_spp_flags);
- proto_tree_add_boolean(flags_tree, hf_dplay_spp_flags_sending, tvb, offset, 4, flags);
- proto_tree_add_boolean(flags_tree, hf_dplay_spp_flags_in_group, tvb, offset, 4, flags);
- proto_tree_add_boolean(flags_tree, hf_dplay_spp_flags_nameserver, tvb, offset, 4, flags);
- proto_tree_add_boolean(flags_tree, hf_dplay_spp_flags_sysplayer, tvb, offset, 4, flags);
- offset += 4;
+ proto_tree_add_bitmask(tree, tvb, offset, hf_dplay_spp_flags, ett_dplay_spp_flags, ssp_flags, ENC_LITTLE_ENDIAN); offset += 4;
proto_tree_add_item(tree, hf_dplay_spp_id, tvb, offset, 4, ENC_NA); offset += 4;
info_mask = tvb_get_letohl(tvb, offset);
@@ -745,22 +739,18 @@ static gint dissect_type01_message(proto_tree *tree, tvbuff_t *tvb, gint offset)
static gint dissect_type02_message(proto_tree *tree, tvbuff_t *tvb, gint offset)
{
guint32 passwd_offset;
- guint32 flags;
- proto_item *flags_item;
- proto_tree *flags_tree;
+ static const int * flags[] = {
+ &hf_enum_sess_flag_passwd,
+ &hf_enum_sess_flag_all,
+ &hf_enum_sess_flag_join,
+ NULL
+ };
passwd_offset = tvb_get_letohl(tvb, offset + 16);
- flags = tvb_get_letohl(tvb, offset + 20);
proto_tree_add_item(tree, hf_dplay_type_02_game_guid, tvb, offset, 16, ENC_BIG_ENDIAN); offset += 16;
proto_tree_add_item(tree, hf_dplay_type_02_password_offset, tvb, offset, 4, ENC_LITTLE_ENDIAN); offset += 4;
-
- flags_item = proto_tree_add_item(tree, hf_dplay_type_02_flags, tvb, offset, 4, ENC_LITTLE_ENDIAN);
- flags_tree = proto_item_add_subtree(flags_item, ett_dplay_type02_flags);
- proto_tree_add_boolean(flags_tree, hf_enum_sess_flag_passwd, tvb, offset, 4, flags);
- proto_tree_add_boolean(flags_tree, hf_enum_sess_flag_all, tvb, offset, 4, flags);
- proto_tree_add_boolean(flags_tree, hf_enum_sess_flag_join, tvb, offset, 4, flags);
- offset += 4;
+ proto_tree_add_bitmask(tree, tvb, offset, hf_dplay_type_02_flags, ett_dplay_type02_flags, flags, ENC_LITTLE_ENDIAN); offset += 4;
if (passwd_offset != 0) {
offset = display_unicode_string(tree, hf_dplay_type_02_password, tvb, offset);
@@ -770,18 +760,16 @@ static gint dissect_type02_message(proto_tree *tree, tvbuff_t *tvb, gint offset)
static gint dissect_type05_message(proto_tree *tree, tvbuff_t *tvb, gint offset)
{
- proto_item *flag_item;
- proto_item *flag_tree;
- guint32 flags;
+ static const int * flags[] = {
+ &hf_dplay_type_05_secure,
+ &hf_dplay_type_05_unknown,
+ &hf_dplay_type_05_local,
+ &hf_dplay_type_05_name_server,
+ &hf_dplay_type_05_system_player,
+ NULL
+ };
- flags = tvb_get_letohl(tvb, offset);
- flag_item = proto_tree_add_item(tree, hf_dplay_type_05_flags, tvb, offset, 4, ENC_LITTLE_ENDIAN);
- flag_tree = proto_item_add_subtree(flag_item, ett_dplay_type05_flags);
- proto_tree_add_boolean(flag_tree, hf_dplay_type_05_secure, tvb, offset, 4, flags);
- proto_tree_add_boolean(flag_tree, hf_dplay_type_05_unknown, tvb, offset, 4, flags);
- proto_tree_add_boolean(flag_tree, hf_dplay_type_05_local, tvb, offset, 4, flags);
- proto_tree_add_boolean(flag_tree, hf_dplay_type_05_name_server, tvb, offset, 4, flags);
- proto_tree_add_boolean(flag_tree, hf_dplay_type_05_system_player, tvb, offset, 4, flags);
+ proto_tree_add_bitmask(tree, tvb, offset, hf_dplay_type_05_flags, ett_dplay_type05_flags, flags, ENC_LITTLE_ENDIAN);
offset += 4;
return offset;
}