diff options
author | Guy Harris <guy@alum.mit.edu> | 2004-01-27 08:06:12 +0000 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2004-01-27 08:06:12 +0000 |
commit | 2528c053cecdf0acd82a225027df52dcf44439ef (patch) | |
tree | 89a2f17b206f3ebfb142436d83e8a435262dde06 /wiretap/etherpeek.c | |
parent | 70e3d8a0974b5aceb1b0175f437ad570b633677e (diff) |
Supply a pseudo-header for all 802.11 packets; add an "fcs_len" field to
it, similar to the Ethernet pseudo-header's "fcs_len" field, and use it
in the 802.11 dissector.
svn path=/trunk/; revision=9884
Diffstat (limited to 'wiretap/etherpeek.c')
-rw-r--r-- | wiretap/etherpeek.c | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/wiretap/etherpeek.c b/wiretap/etherpeek.c index 9da771ae03..ab37b00051 100644 --- a/wiretap/etherpeek.c +++ b/wiretap/etherpeek.c @@ -2,7 +2,7 @@ * Routines for opening EtherPeek (and TokenPeek?) files * Copyright (c) 2001, Daniel Thompson <d.thompson@gmx.net> * - * $Id: etherpeek.c,v 1.26 2004/01/25 21:55:13 guy Exp $ + * $Id: etherpeek.c,v 1.27 2004/01/27 08:06:11 guy Exp $ * * Wiretap Library * Copyright (c) 1998 by Gilbert Ramirez <gram@alumni.rice.edu> @@ -141,6 +141,8 @@ static gboolean etherpeek_read_v7(wtap *wth, int *err, gchar **err_info, static gboolean etherpeek_seek_read_v7(wtap *wth, long seek_off, union wtap_pseudo_header *pseudo_header, guchar *pd, int length, int *err, gchar **err_info); +static void etherpeek_fill_pseudo_header_v7( + union wtap_pseudo_header *pseudo_header, airopeek_radio_hdr_t *radio_hdr); static gboolean etherpeek_read_v56(wtap *wth, int *err, gchar **err_info, long *data_offset); static gboolean etherpeek_seek_read_v56(wtap *wth, long seek_off, @@ -418,9 +420,8 @@ static gboolean etherpeek_read_v7(wtap *wth, int *err, gchar **err_info, wth->phdr.caplen -= 4; wth->data_offset += 4; - wth->pseudo_header.ieee_802_11.channel = radio_hdr.channel; - wth->pseudo_header.ieee_802_11.data_rate = radio_hdr.data_rate; - wth->pseudo_header.ieee_802_11.signal_level = radio_hdr.signal_level; + etherpeek_fill_pseudo_header_v7(&wth->pseudo_header, + &radio_hdr); break; case WTAP_ENCAP_ETHERNET: @@ -497,9 +498,8 @@ etherpeek_seek_read_v7(wtap *wth, long seek_off, wtap_file_read_expected_bytes(&radio_hdr, 4, wth->random_fh, err); - pseudo_header->ieee_802_11.channel = radio_hdr.channel; - pseudo_header->ieee_802_11.data_rate = radio_hdr.data_rate; - pseudo_header->ieee_802_11.signal_level = radio_hdr.signal_level; + etherpeek_fill_pseudo_header_v7(pseudo_header, + &radio_hdr); break; case WTAP_ENCAP_ETHERNET: @@ -518,6 +518,16 @@ etherpeek_seek_read_v7(wtap *wth, long seek_off, return TRUE; } +static void +etherpeek_fill_pseudo_header_v7(union wtap_pseudo_header *pseudo_header, + airopeek_radio_hdr_t *radio_hdr) +{ + pseudo_header->ieee_802_11.fcs_len = 0; /* no FCS */ + pseudo_header->ieee_802_11.channel = radio_hdr->channel; + pseudo_header->ieee_802_11.data_rate = radio_hdr->data_rate; + pseudo_header->ieee_802_11.signal_level = radio_hdr->signal_level; +} + static gboolean etherpeek_read_v56(wtap *wth, int *err, gchar **err_info _U_, long *data_offset) { |