summaryrefslogtreecommitdiff
path: root/wiretap/netxray.c
diff options
context:
space:
mode:
authorSimon Barber <simon.barber@meraki.net>2015-12-09 14:26:46 -0800
committerGuy Harris <guy@alum.mit.edu>2015-12-24 07:58:51 +0000
commitffa9e938e24779470c664ea8eca1e452ce025f97 (patch)
tree907bfdf175cdfd1ac3694b2ca9de9ca452f33020 /wiretap/netxray.c
parent1ffd4398504d5bc69c322fd64e826fa7eb22ed3b (diff)
downloadwireshark-ffa9e938e24779470c664ea8eca1e452ce025f97.tar.gz
Refactor 802.11 radio flags.
The use of a flag field here is aesthetically unpleasing when the flags are referred to frequently. Convert these into bitfield entries. Change-Id: I6f47e31558439dfd343ec7f856d04480366a1237 Reviewed-on: https://code.wireshark.org/review/12511 Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Guy Harris <guy@alum.mit.edu>
Diffstat (limited to 'wiretap/netxray.c')
-rw-r--r--wiretap/netxray.c44
1 files changed, 21 insertions, 23 deletions
diff --git a/wiretap/netxray.c b/wiretap/netxray.c
index ab23bd62c7..8d09a0e335 100644
--- a/wiretap/netxray.c
+++ b/wiretap/netxray.c
@@ -1230,6 +1230,7 @@ netxray_process_rec_header(wtap *wth, FILE_T fh, struct wtap_pkthdr *phdr,
* Ken also says that xxx[11] is 0x5 when the
* packet is WEP-encrypted.
*/
+ memset(&phdr->pseudo_header.ieee_802_11, 0, sizeof(phdr->pseudo_header.ieee_802_11));
if (hdr.hdr_2_x.xxx[2] == 0xff &&
hdr.hdr_2_x.xxx[3] == 0xff) {
/*
@@ -1259,31 +1260,28 @@ netxray_process_rec_header(wtap *wth, FILE_T fh, struct wtap_pkthdr *phdr,
* type, frequency, 11n/11ac information,
* etc.?
*/
+ phdr->pseudo_header.ieee_802_11.has_channel = TRUE;
phdr->pseudo_header.ieee_802_11.channel =
hdr.hdr_2_x.xxx[12];
+
+ phdr->pseudo_header.ieee_802_11.has_data_rate = TRUE;
phdr->pseudo_header.ieee_802_11.data_rate =
hdr.hdr_2_x.xxx[13];
+
+ phdr->pseudo_header.ieee_802_11.has_signal_percent = TRUE;
phdr->pseudo_header.ieee_802_11.signal_percent =
hdr.hdr_2_x.xxx[14];
+
/*
* According to Ken Mann, at least in the captures
* he's seen, xxx[15] is the noise level, which
* is either 0xFF meaning "none reported" or a value
* from 0x00 to 0x7F for 0 to 100%.
*/
- if (hdr.hdr_2_x.xxx[15] == 0xFF) {
- phdr->pseudo_header.ieee_802_11.presence_flags =
- PHDR_802_11_HAS_CHANNEL |
- PHDR_802_11_HAS_DATA_RATE |
- PHDR_802_11_HAS_SIGNAL_PERCENT;
- } else {
+ if (hdr.hdr_2_x.xxx[15] != 0xFF) {
+ phdr->pseudo_header.ieee_802_11.has_noise_percent = TRUE;
phdr->pseudo_header.ieee_802_11.noise_percent =
hdr.hdr_2_x.xxx[15]*100/127;
- phdr->pseudo_header.ieee_802_11.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;
}
break;
@@ -1962,21 +1960,21 @@ netxray_dump_2_0(wtap_dumper *wdh,
case WTAP_ENCAP_IEEE_802_11_WITH_RADIO:
rec_hdr.xxx[12] =
- (pseudo_header->ieee_802_11.presence_flags & PHDR_802_11_HAS_CHANNEL) ?
- pseudo_header->ieee_802_11.channel :
- 0;
+ pseudo_header->ieee_802_11.has_channel ?
+ pseudo_header->ieee_802_11.channel :
+ 0;
rec_hdr.xxx[13] =
- (pseudo_header->ieee_802_11.presence_flags & PHDR_802_11_HAS_DATA_RATE) ?
- (guint8)pseudo_header->ieee_802_11.data_rate :
- 0;
+ pseudo_header->ieee_802_11.has_data_rate ?
+ (guint8)pseudo_header->ieee_802_11.data_rate :
+ 0;
rec_hdr.xxx[14] =
- (pseudo_header->ieee_802_11.presence_flags & PHDR_802_11_HAS_SIGNAL_PERCENT) ?
- pseudo_header->ieee_802_11.signal_percent :
- 0;
+ pseudo_header->ieee_802_11.has_signal_percent ?
+ pseudo_header->ieee_802_11.signal_percent :
+ 0;
rec_hdr.xxx[15] =
- (pseudo_header->ieee_802_11.presence_flags & PHDR_802_11_HAS_NOISE_PERCENT) ?
- pseudo_header->ieee_802_11.noise_percent*127/100 :
- 0xFF;
+ pseudo_header->ieee_802_11.has_noise_percent ?
+ pseudo_header->ieee_802_11.noise_percent*127/100 :
+ 0xFF;
break;
case WTAP_ENCAP_PPP_WITH_PHDR: