aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-peekremote.c
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/packet-peekremote.c')
-rw-r--r--epan/dissectors/packet-peekremote.c37
1 files changed, 18 insertions, 19 deletions
diff --git a/epan/dissectors/packet-peekremote.c b/epan/dissectors/packet-peekremote.c
index 32766d97d2..8b343e4b22 100644
--- a/epan/dissectors/packet-peekremote.c
+++ b/epan/dissectors/packet-peekremote.c
@@ -418,11 +418,11 @@ dissect_peekremote_new(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void
}
/* We don't have any 802.11 metadata yet. */
+ memset(&phdr, 0, sizeof(phdr));
phdr.fcs_len = 4; /* has an FCS */
phdr.decrypted = FALSE;
phdr.datapad = FALSE;
phdr.phy = PHDR_802_11_PHY_UNKNOWN;
- phdr.presence_flags = 0;
col_set_str(pinfo->cinfo, COL_PROTOCOL, "PEEKREMOTE");
col_clear(pinfo->cinfo, COL_INFO);
@@ -446,24 +446,18 @@ dissect_peekremote_new(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void
if (header_size > 9)
offset += (header_size - 9);
} else {
- phdr.presence_flags |=
- PHDR_802_11_HAS_CHANNEL|
- PHDR_802_11_HAS_SIGNAL_PERCENT|
- PHDR_802_11_HAS_NOISE_PERCENT|
- PHDR_802_11_HAS_SIGNAL_DBM|
- PHDR_802_11_HAS_NOISE_DBM|
- PHDR_802_11_HAS_TSF_TIMESTAMP;
proto_tree_add_item(peekremote_tree, &hfi_peekremote_type, tvb, offset, 4, ENC_BIG_ENDIAN);
offset += 4;
mcs_index = tvb_get_ntohs(tvb, offset);
proto_tree_add_item(peekremote_tree, &hfi_peekremote_mcs_index, tvb, offset, 2, ENC_BIG_ENDIAN);
offset += 2;
+ phdr.has_channel = TRUE;
phdr.channel = tvb_get_ntohs(tvb, offset);
proto_tree_add_item(peekremote_tree, &hfi_peekremote_channel, tvb, offset, 2, ENC_BIG_ENDIAN);
offset += 2;
frequency = tvb_get_ntohl(tvb, offset);
if (frequency != 0) {
- phdr.presence_flags |= PHDR_802_11_HAS_FREQUENCY;
+ phdr.has_frequency = TRUE;
phdr.frequency = frequency;
}
proto_tree_add_item(peekremote_tree, &hfi_peekremote_frequency, tvb, offset, 4, ENC_BIG_ENDIAN);
@@ -474,7 +468,6 @@ dissect_peekremote_new(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void
if (extflags & EXT_FLAG_802_11ac) {
guint i;
phdr.phy = PHDR_802_11_PHY_11AC;
- phdr.phy_info.info_11ac.presence_flags = 0;
/*
* XXX - this probably has only one user, so only one MCS index
* and only one NSS, but where's the NSS?
@@ -484,19 +477,23 @@ dissect_peekremote_new(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void
}
} else {
phdr.phy = PHDR_802_11_PHY_11N;
- phdr.phy_info.info_11n.presence_flags = PHDR_802_11N_HAS_MCS_INDEX;
+ phdr.phy_info.info_11n.has_mcs_index = TRUE;
phdr.phy_info.info_11n.mcs_index = mcs_index;
}
offset += dissect_peekremote_extflags(tvb, pinfo, peekremote_tree, offset);
+ phdr.has_signal_percent = TRUE;
phdr.signal_percent = tvb_get_guint8(tvb, offset);
proto_tree_add_item(peekremote_tree, &hfi_peekremote_signal_percent, tvb, offset, 1, ENC_NA);
offset += 1;
+ phdr.has_noise_percent = TRUE;
phdr.noise_percent = tvb_get_guint8(tvb, offset);
proto_tree_add_item(peekremote_tree, &hfi_peekremote_noise_percent, tvb, offset, 1, ENC_NA);
offset += 1;
+ phdr.has_signal_dbm = TRUE;
phdr.signal_dbm = tvb_get_guint8(tvb, offset);
proto_tree_add_item(peekremote_tree, &hfi_peekremote_signal_dbm, tvb, offset, 1, ENC_NA);
offset += 1;
+ phdr.has_noise_dbm = TRUE;
phdr.noise_dbm = tvb_get_guint8(tvb, offset);
proto_tree_add_item(peekremote_tree, &hfi_peekremote_noise_dbm, tvb, offset, 1, ENC_NA);
offset += 1;
@@ -523,6 +520,7 @@ dissect_peekremote_new(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void
offset += dissect_peekremote_flags(tvb, pinfo, peekremote_tree, offset);
offset += dissect_peekremote_status(tvb, pinfo, peekremote_tree, offset);
proto_tree_add_item(peekremote_tree, &hfi_peekremote_timestamp, tvb, offset, 8, ENC_BIG_ENDIAN);
+ phdr.has_tsf_timestamp = TRUE;
phdr.tsf_timestamp = tvb_get_ntoh64(tvb, offset);
offset += 8;
}
@@ -550,6 +548,8 @@ dissect_peekremote_legacy(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, v
struct ieee_802_11_phdr phdr;
guint8 signal_percent;
+ memset(&phdr, 0, sizeof(phdr));
+
/*
* Check whether this is peekremote-ng, and dissect it as such if it
* is.
@@ -589,20 +589,19 @@ dissect_peekremote_legacy(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, v
}
phdr.decrypted = FALSE;
phdr.phy = PHDR_802_11_PHY_UNKNOWN;
- phdr.presence_flags =
- PHDR_802_11_HAS_CHANNEL|
- PHDR_802_11_HAS_DATA_RATE|
- PHDR_802_11_HAS_SIGNAL_PERCENT|
- PHDR_802_11_HAS_NOISE_PERCENT|
- PHDR_802_11_HAS_SIGNAL_DBM|
- PHDR_802_11_HAS_NOISE_DBM|
- PHDR_802_11_HAS_TSF_TIMESTAMP;
+ phdr.has_channel = TRUE;
phdr.channel = tvb_get_guint8(tvb, 17);
+ phdr.has_data_rate = TRUE;
phdr.data_rate = tvb_get_guint8(tvb, 16);
+ phdr.has_signal_percent = TRUE;
phdr.signal_percent = tvb_get_guint8(tvb, 18);
+ phdr.has_noise_percent = TRUE;
phdr.noise_percent = tvb_get_guint8(tvb, 18);
+ phdr.has_signal_dbm = TRUE;
phdr.signal_dbm = tvb_get_guint8(tvb, 0);
+ phdr.has_noise_dbm = TRUE;
phdr.noise_dbm = tvb_get_guint8(tvb, 1);
+ phdr.has_tsf_timestamp = TRUE;
phdr.tsf_timestamp = tvb_get_ntoh64(tvb, 8);
return 20 + call_dissector_with_data(wlan_radio_handle, next_tvb, pinfo, tree, &phdr);