aboutsummaryrefslogtreecommitdiffstats
path: root/wiretap/network_instruments.c
diff options
context:
space:
mode:
Diffstat (limited to 'wiretap/network_instruments.c')
-rw-r--r--wiretap/network_instruments.c32
1 files changed, 10 insertions, 22 deletions
diff --git a/wiretap/network_instruments.c b/wiretap/network_instruments.c
index 8984db543f..2bdf1e6a60 100644
--- a/wiretap/network_instruments.c
+++ b/wiretap/network_instruments.c
@@ -106,7 +106,7 @@ static gboolean observer_seek_read(wtap *wth, gint64 seek_off,
union wtap_pseudo_header *pseudo_header, guint8 *pd, int length,
int *err, gchar **err_info);
static int read_packet_header(FILE_T fh, union wtap_pseudo_header *pseudo_header,
- packet_entry_header *packet_header, gboolean *decrypted_wireless, int *err, gchar **err_info);
+ packet_entry_header *packet_header, int *err, gchar **err_info);
static int read_packet_data(FILE_T fh, int offset_to_frame, int current_offset_from_packet_header,
guint8 *pd, int length, int *err, char **err_info);
static gboolean skip_to_next_packet(wtap *wth, int offset_to_next_packet,
@@ -265,7 +265,6 @@ int network_instruments_open(wtap *wth, int *err, gchar **err_info)
static gboolean observer_read(wtap *wth, int *err, gchar **err_info,
gint64 *data_offset)
{
- gboolean decrypted_wireless;
int header_bytes_consumed;
int data_bytes_consumed;
packet_entry_header packet_header;
@@ -275,8 +274,8 @@ static gboolean observer_read(wtap *wth, int *err, gchar **err_info,
*data_offset = file_tell(wth->fh);
/* process the packet header, including TLVs */
- header_bytes_consumed = read_packet_header(wth->fh, &wth->pseudo_header, &packet_header, &decrypted_wireless,
- err, err_info);
+ header_bytes_consumed = read_packet_header(wth->fh, &wth->pseudo_header, &packet_header, err,
+ err_info);
if (header_bytes_consumed <= 0)
return FALSE; /* EOF or error */
@@ -357,11 +356,6 @@ static gboolean observer_read(wtap *wth, int *err, gchar **err_info,
return FALSE;
}
- /* clear the protected flag in the wireless header if needed */
- if (decrypted_wireless && data_bytes_consumed > 1) {
- *(buffer_start_ptr(wth->frame_buffer)+1) = (*(buffer_start_ptr(wth->frame_buffer)+1) & 0xbf);
- }
-
/* skip over any extra bytes following the frame data */
if (!skip_to_next_packet(wth, packet_header.offset_to_next_packet,
header_bytes_consumed + data_bytes_consumed, err, err_info)) {
@@ -376,17 +370,16 @@ static gboolean observer_seek_read(wtap *wth, gint64 seek_off,
union wtap_pseudo_header *pseudo_header, guint8 *pd, int length,
int *err, gchar **err_info)
{
- gboolean decrypted_wireless;
packet_entry_header packet_header;
int offset;
- int data_bytes_consumed;
+ int data_bytes_consumed;
if (file_seek(wth->random_fh, seek_off, SEEK_SET, err) == -1)
return FALSE;
/* process the packet header, including TLVs */
- offset = read_packet_header(wth->random_fh, pseudo_header, &packet_header, &decrypted_wireless,
- err, err_info);
+ offset = read_packet_header(wth->random_fh, pseudo_header, &packet_header, err,
+ err_info);
if (offset <= 0)
return FALSE; /* EOF or error */
@@ -403,23 +396,18 @@ static gboolean observer_seek_read(wtap *wth, gint64 seek_off,
}
/* read the frame data */
- data_bytes_consumed = read_packet_data(wth->random_fh, packet_header.offset_to_frame,
+ data_bytes_consumed = read_packet_data(wth->random_fh, packet_header.offset_to_frame,
offset, pd, length, err, err_info);
if (data_bytes_consumed < 0) {
return FALSE;
}
- /* clear the protected flag in the wireless header if needed */
- if (decrypted_wireless && data_bytes_consumed > 1) {
- *(pd+1) = (*(pd+1) & 0xbf);
- }
-
return TRUE;
}
static int
read_packet_header(FILE_T fh, union wtap_pseudo_header *pseudo_header,
- packet_entry_header *packet_header, gboolean *decrypted_wireless, int *err, gchar **err_info)
+ packet_entry_header *packet_header, int *err, gchar **err_info)
{
int offset;
int bytes_read;
@@ -498,11 +486,11 @@ read_packet_header(FILE_T fh, union wtap_pseudo_header *pseudo_header,
}
/* update the pseudo header */
pseudo_header->ieee_802_11.fcs_len = 0;
+ /* set decryption status */
+ pseudo_header->ieee_802_11.decrypted = (wireless_header.conditions & WIRELESS_WEP_SUCCESS) != 0;
pseudo_header->ieee_802_11.channel = wireless_header.frequency;
pseudo_header->ieee_802_11.data_rate = wireless_header.rate;
pseudo_header->ieee_802_11.signal_level = wireless_header.strengthPercent;
- /* set decryption status */
- *decrypted_wireless = (wireless_header.conditions & WIRELESS_WEP_SUCCESS) > 0;
offset += bytes_read;
break;
default: