From ffa9e938e24779470c664ea8eca1e452ce025f97 Mon Sep 17 00:00:00 2001 From: Simon Barber Date: Wed, 9 Dec 2015 14:26:46 -0800 Subject: 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 Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris --- wiretap/netxray.c | 44 +++++++++++++++++++++----------------------- 1 file changed, 21 insertions(+), 23 deletions(-) (limited to 'wiretap/netxray.c') 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: -- cgit v1.2.1