Add wtap-int.h. Move definitions relevant to the internal workins of wiretap

to that file, leave public definitions in wtap.h.

Rename "union pseudo_header" to "union wtap_pseudo_header".
Make the wtap_pseudo_header pointer available in packet_info struct.

svn path=/trunk/; revision=1989
This commit is contained in:
Gilbert Ramirez 2000-05-19 23:07:04 +00:00
parent 586e1b6fca
commit d7e6e0e384
39 changed files with 396 additions and 347 deletions

View File

@ -1,7 +1,7 @@
/* Edit capture files. We can delete records, or simply convert from one
* format to another format.
*
* $Id: editcap.c,v 1.10 2000/05/18 09:05:29 guy Exp $
* $Id: editcap.c,v 1.11 2000/05/19 23:06:06 gram Exp $
*
* Originally written by Richard Sharpe.
* Improved by Guy Harris.
@ -130,7 +130,7 @@ typedef struct {
static void
edit_callback(u_char *user, const struct wtap_pkthdr *phdr, int offset,
union pseudo_header *pseudo_header, const u_char *buf)
union wtap_pseudo_header *pseudo_header, const u_char *buf)
{
callback_arg *argp = (callback_arg *)user;
int err;

10
file.c
View File

@ -1,7 +1,7 @@
/* file.c
* File I/O routines
*
* $Id: file.c,v 1.188 2000/05/18 09:05:30 guy Exp $
* $Id: file.c,v 1.189 2000/05/19 23:06:06 gram Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@ -94,7 +94,7 @@ static guint32 firstsec, firstusec;
static guint32 prevsec, prevusec;
static void wtap_dispatch_cb(u_char *, const struct wtap_pkthdr *, int,
union pseudo_header *, const u_char *);
union wtap_pseudo_header *, const u_char *);
static void set_selected_row(int row);
@ -500,7 +500,7 @@ apply_color_filter(gpointer filter_arg, gpointer argp)
static int
add_packet_to_packet_list(frame_data *fdata, capture_file *cf,
union pseudo_header *pseudo_header, const u_char *buf)
union wtap_pseudo_header *pseudo_header, const u_char *buf)
{
apply_color_filter_args args;
gint i, row;
@ -634,7 +634,7 @@ add_packet_to_packet_list(frame_data *fdata, capture_file *cf,
static void
wtap_dispatch_cb(u_char *user, const struct wtap_pkthdr *phdr, int offset,
union pseudo_header *pseudo_header, const u_char *buf)
union wtap_pseudo_header *pseudo_header, const u_char *buf)
{
frame_data *fdata;
capture_file *cf = (capture_file *) user;
@ -1422,7 +1422,7 @@ save_cap_file(char *fname, capture_file *cf, gboolean save_filtered,
wtap_dumper *pdh;
frame_data *fdata;
struct wtap_pkthdr hdr;
union pseudo_header pseudo_header;
union wtap_pseudo_header pseudo_header;
guint8 pd[65536];
name_ptr = get_basename(fname);

4
file.h
View File

@ -1,7 +1,7 @@
/* file.h
* Definitions for file structures and routines
*
* $Id: file.h,v 1.67 2000/05/18 09:05:36 guy Exp $
* $Id: file.h,v 1.68 2000/05/19 23:06:07 gram Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@ -100,7 +100,7 @@ typedef struct _capture_file {
#endif
gchar *sfilter; /* Search filter string */
gboolean sbackward; /* TRUE if search is backward, FALSE if forward */
union pseudo_header pseudo_header; /* Packet pseudo_header */
union wtap_pseudo_header pseudo_header; /* Packet pseudo_header */
guint8 pd[WTAP_MAX_PACKET_SIZE]; /* Packet data */
GMemChunk *plist_chunk; /* Memory chunk for frame_data structures */
frame_data *plist; /* Packet list */

View File

@ -3,7 +3,7 @@
*
* Copyright 2000, Jeffrey C. Foster <jfoste@woodward.com>
*
* $Id: packet_win.c,v 1.7 2000/05/18 09:08:20 guy Exp $
* $Id: packet_win.c,v 1.8 2000/05/19 23:06:32 gram Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@ -73,7 +73,7 @@
struct PacketWinData {
gint cap_len;
gint encoding;
union pseudo_header pseudo_header; /* Pseudo-header for packet */
union wtap_pseudo_header pseudo_header; /* Pseudo-header for packet */
guint8 *pd; /* Data for packet */
proto_tree *protocol_tree; /* Protocol tree for packet */
GtkWidget *main;

View File

@ -1,7 +1,7 @@
/* packet-ascend.c
* Routines for decoding Lucent/Ascend packet traces
*
* $Id: packet-ascend.c,v 1.13 2000/05/18 09:05:38 guy Exp $
* $Id: packet-ascend.c,v 1.14 2000/05/19 23:06:08 gram Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@ -53,13 +53,13 @@ static const value_string encaps_vals[] = {
{0, NULL } };
void
dissect_ascend( tvbuff_t *tvb, const union pseudo_header *pseudo_header,
packet_info *pinfo, proto_tree *tree)
dissect_ascend(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
proto_tree *fh_tree;
proto_item *ti;
const guint8 *pd;
int offset;
proto_tree *fh_tree;
proto_item *ti;
const guint8 *pd;
int offset;
union wtap_pseudo_header *pseudo_header = pinfo->pseudo_header;
pinfo->current_proto = "Lucent/Ascend";

View File

@ -1,6 +1,6 @@
/* packet-ascend.h
*
* $Id: packet-ascend.h,v 1.3 2000/05/18 09:05:40 guy Exp $
* $Id: packet-ascend.h,v 1.4 2000/05/19 23:06:08 gram Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@ -22,5 +22,4 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
void dissect_ascend(tvbuff_t *, const union pseudo_header *, packet_info *,
proto_tree *);
void dissect_ascend(tvbuff_t *, packet_info *, proto_tree *);

View File

@ -1,7 +1,7 @@
/* packet-atm.c
* Routines for ATM packet disassembly
*
* $Id: packet-atm.c,v 1.19 2000/05/18 09:05:40 guy Exp $
* $Id: packet-atm.c,v 1.20 2000/05/19 23:06:08 gram Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@ -372,7 +372,7 @@ dissect_le_control(const u_char *pd, int offset, frame_data *fd, proto_tree *tre
}
static void
dissect_lane(const union pseudo_header *pseudo_header, const u_char *pd,
dissect_lane(const union wtap_pseudo_header *pseudo_header, const u_char *pd,
int offset, frame_data *fd, proto_tree *tree)
{
tvbuff_t *next_tvb;
@ -485,7 +485,7 @@ static const value_string ipsilon_type_vals[] = {
* We at least know it's AAL5....
*/
static void
atm_guess_content(union pseudo_header *pseudo_header, const u_char *pd,
atm_guess_content(union wtap_pseudo_header *pseudo_header, const u_char *pd,
frame_data *fd)
{
if (pseudo_header->ngsniffer_atm.Vpi == 0) {
@ -550,7 +550,7 @@ atm_guess_content(union pseudo_header *pseudo_header, const u_char *pd,
}
void
dissect_atm(union pseudo_header *pseudo_header, const u_char *pd,
dissect_atm(union wtap_pseudo_header *pseudo_header, const u_char *pd,
frame_data *fd, proto_tree *tree)
{
int offset = 0;

View File

@ -1,6 +1,6 @@
/* packet-atm.h
*
* $Id: packet-atm.h,v 1.2 2000/05/18 09:05:43 guy Exp $
* $Id: packet-atm.h,v 1.3 2000/05/19 23:06:08 gram Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@ -22,5 +22,5 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
void dissect_atm(union pseudo_header *, const u_char *, frame_data *,
void dissect_atm(union wtap_pseudo_header *, const u_char *, frame_data *,
proto_tree *);

View File

@ -2,7 +2,7 @@
* Routines for lapb frame disassembly
* Olivier Abad <abad@daba.dhis.net>
*
* $Id: packet-lapb.c,v 1.14 2000/05/18 09:05:44 guy Exp $
* $Id: packet-lapb.c,v 1.15 2000/05/19 23:06:09 gram Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@ -50,7 +50,7 @@ static gint ett_lapb = -1;
static gint ett_lapb_control = -1;
void
dissect_lapb(const union pseudo_header *pseudo_header, const u_char *pd,
dissect_lapb(const union wtap_pseudo_header *pseudo_header, const u_char *pd,
frame_data *fd, proto_tree *tree)
{
proto_tree *lapb_tree, *ti;

View File

@ -1,6 +1,6 @@
/* packet-lapb.h
*
* $Id: packet-lapb.h,v 1.2 2000/05/18 09:05:45 guy Exp $
* $Id: packet-lapb.h,v 1.3 2000/05/19 23:06:09 gram Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@ -22,5 +22,5 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
void dissect_lapb(const union pseudo_header *, const u_char *, frame_data *,
void dissect_lapb(const union wtap_pseudo_header *, const u_char *, frame_data *,
proto_tree *);

View File

@ -2,7 +2,7 @@
* Routines for LAPD frame disassembly
* Gilbert Ramirez <gram@xiexie.org>
*
* $Id: packet-lapd.c,v 1.7 2000/05/18 09:05:46 guy Exp $
* $Id: packet-lapd.c,v 1.8 2000/05/19 23:06:09 gram Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@ -84,7 +84,7 @@ static const value_string lapd_sapi_vals[] = {
};
void
dissect_lapd(const union pseudo_header *pseudo_header, const u_char *pd,
dissect_lapd(const union wtap_pseudo_header *pseudo_header, const u_char *pd,
frame_data *fd, proto_tree *tree)
{
proto_tree *lapd_tree, *addr_tree;

View File

@ -1,6 +1,6 @@
/* packet-lapd.h
*
* $Id: packet-lapd.h,v 1.2 2000/05/18 09:05:47 guy Exp $
* $Id: packet-lapd.h,v 1.3 2000/05/19 23:06:09 gram Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@ -22,5 +22,5 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
void dissect_lapd(const union pseudo_header *, const u_char *, frame_data *,
void dissect_lapd(const union wtap_pseudo_header *, const u_char *, frame_data *,
proto_tree *);

View File

@ -2,7 +2,7 @@
* Routines for v120 frame disassembly
* Bert Driehuis <driehuis@playbeing.org>
*
* $Id: packet-v120.c,v 1.7 2000/05/18 09:05:48 guy Exp $
* $Id: packet-v120.c,v 1.8 2000/05/19 23:06:09 gram Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@ -54,7 +54,7 @@ static gint ett_v120_header = -1;
static int dissect_v120_header(const u_char *pd, int offset, frame_data *fd, proto_tree *tree);
void
dissect_v120(const union pseudo_header *pseudo_header, const u_char *pd,
dissect_v120(const union wtap_pseudo_header *pseudo_header, const u_char *pd,
frame_data *fd, proto_tree *tree)
{
proto_tree *v120_tree, *ti, *tc, *address_tree;

View File

@ -1,6 +1,6 @@
/* packet-v120.h
*
* $Id: packet-v120.h,v 1.2 2000/05/18 09:05:49 guy Exp $
* $Id: packet-v120.h,v 1.3 2000/05/19 23:06:09 gram Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@ -22,5 +22,5 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
void dissect_v120(const union pseudo_header *, const u_char *, frame_data *,
void dissect_v120(const union wtap_pseudo_header *, const u_char *, frame_data *,
proto_tree *);

View File

@ -2,7 +2,7 @@
* Routines for x25 packet disassembly
* Olivier Abad <abad@daba.dhis.net>
*
* $Id: packet-x25.c,v 1.26 2000/05/18 09:05:49 guy Exp $
* $Id: packet-x25.c,v 1.27 2000/05/19 23:06:09 gram Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@ -1366,7 +1366,7 @@ static const value_string sharing_strategy_vals[] = {
};
void
dissect_x25(const union pseudo_header *pseudo_header, const u_char *pd,
dissect_x25(const union wtap_pseudo_header *pseudo_header, const u_char *pd,
int offset, frame_data *fd, proto_tree *tree)
{
proto_tree *x25_tree=0, *ti;

View File

@ -1,6 +1,6 @@
/* packet-x25.h
*
* $Id: packet-x25.h,v 1.4 2000/05/18 09:05:54 guy Exp $
* $Id: packet-x25.h,v 1.5 2000/05/19 23:06:10 gram Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@ -22,5 +22,5 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
void dissect_x25(const union pseudo_header *, const u_char *, int, frame_data *,
void dissect_x25(const union wtap_pseudo_header *, const u_char *, int, frame_data *,
proto_tree *);

View File

@ -1,7 +1,7 @@
/* packet.c
* Routines for packet disassembly
*
* $Id: packet.c,v 1.87 2000/05/19 21:47:38 gram Exp $
* $Id: packet.c,v 1.88 2000/05/19 23:06:10 gram Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@ -1066,7 +1066,7 @@ void blank_packetinfo(void)
pi.ptype = PT_NONE;
pi.srcport = 0;
pi.destport = 0;
pi.current_proto = "";
pi.current_proto = "<Missing Protocol Name>";
}
/* Do all one-time initialization. */
@ -1120,7 +1120,7 @@ init_all_protocols(void)
/* this routine checks the frame type from the cf structure */
void
dissect_packet(union pseudo_header *pseudo_header, const u_char *pd,
dissect_packet(union wtap_pseudo_header *pseudo_header, const u_char *pd,
frame_data *fd, proto_tree *tree)
{
proto_tree *fh_tree;
@ -1171,6 +1171,7 @@ dissect_packet(union pseudo_header *pseudo_header, const u_char *pd,
tvb = tvb_new_real_data(pd, fd->cap_len, -1);
pi.fd = fd;
pi.compat_top_tvb = tvb;
pi.pseudo_header = pseudo_header;
TRY {
switch (fd->lnk_t) {
@ -1205,7 +1206,7 @@ dissect_packet(union pseudo_header *pseudo_header, const u_char *pd,
dissect_atm(pseudo_header, pd, fd, tree);
break;
case WTAP_ENCAP_ASCEND :
dissect_ascend(tvb, pseudo_header, &pi, tree);
dissect_ascend(tvb, &pi, tree);
break;
case WTAP_ENCAP_LAPD :
dissect_lapd(pseudo_header, pd, fd, tree);

View File

@ -1,7 +1,7 @@
/* packet.h
* Definitions for packet disassembly structures and routines
*
* $Id: packet.h,v 1.187 2000/05/19 04:54:35 gram Exp $
* $Id: packet.h,v 1.188 2000/05/19 23:06:11 gram Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@ -125,10 +125,7 @@ typedef struct _frame_proto_data {
/* XXX - some of this stuff is used only while a packet is being dissected;
should we keep around a separate data structure for that, to save
memory?
Also, should the pseudo-header be supplied by Wiretap when you do a
seek-and-read, so that we don't have to save it for all frames? */
memory? */
typedef struct _frame_data {
struct _frame_data *next; /* Next element in list */
struct _frame_data *prev; /* Previous element in list */
@ -188,6 +185,7 @@ typedef struct _packet_info {
const char *current_proto; /* name of protocol currently being dissected */
frame_data *fd;
tvbuff_t *compat_top_tvb; /* only needed while converting Ethereal to use tvbuffs */
union wtap_pseudo_header *pseudo_header;
int len;
int captured_len;
address dl_src; /* link-layer source address */
@ -344,7 +342,7 @@ void init_dissect_rpc(void);
* tree *
* They should never modify the packet data.
*/
void dissect_packet(union pseudo_header *, const u_char *, frame_data *,
void dissect_packet(union wtap_pseudo_header *, const u_char *, frame_data *,
proto_tree *);
void dissect_data(const u_char *, int, frame_data *, proto_tree *);
void dissect_data_tvb(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);

View File

@ -4,7 +4,7 @@
* Creates random packet traces. Useful for debugging sniffers by testing
* assumptions about the veracity of the data found in the packet.
*
* $Id: randpkt.c,v 1.6 2000/05/19 02:42:16 gram Exp $
* $Id: randpkt.c,v 1.7 2000/05/19 23:06:11 gram Exp $
*
* Copyright (C) 1999 by Gilbert Ramirez <gram@xiexie.org>
*
@ -225,7 +225,7 @@ main(int argc, char **argv)
wtap_dumper *dump;
struct wtap_pkthdr pkthdr;
union pseudo_header ps_header;
union wtap_pseudo_header ps_header;
int i, j, len_this_pkt, len_random, err;
guint8 buffer[65536];

View File

@ -1,6 +1,6 @@
/* tethereal.c
*
* $Id: tethereal.c,v 1.28 2000/05/18 09:06:03 guy Exp $
* $Id: tethereal.c,v 1.29 2000/05/19 23:06:12 gram Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@ -111,9 +111,9 @@ typedef struct {
static int load_cap_file(capture_file *, int);
static void wtap_dispatch_cb_write(u_char *, const struct wtap_pkthdr *, int,
union pseudo_header *, const u_char *);
union wtap_pseudo_header *, const u_char *);
static void wtap_dispatch_cb_print(u_char *, const struct wtap_pkthdr *, int,
union pseudo_header *, const u_char *);
union wtap_pseudo_header *, const u_char *);
static gchar *col_info(frame_data *, gint);
packet_info pi;
@ -747,7 +747,7 @@ out:
static void
fill_in_fdata(frame_data *fdata, capture_file *cf,
const struct wtap_pkthdr *phdr,
const union pseudo_header *pseudo_header, int offset)
const union wtap_pseudo_header *pseudo_header, int offset)
{
int i;
@ -815,7 +815,7 @@ fill_in_fdata(frame_data *fdata, capture_file *cf,
static void
wtap_dispatch_cb_write(u_char *user, const struct wtap_pkthdr *phdr, int offset,
union pseudo_header *pseudo_header, const u_char *buf)
union wtap_pseudo_header *pseudo_header, const u_char *buf)
{
cb_args_t *args = (cb_args_t *) user;
capture_file *cf = args->cf;
@ -845,7 +845,7 @@ wtap_dispatch_cb_write(u_char *user, const struct wtap_pkthdr *phdr, int offset,
static void
wtap_dispatch_cb_print(u_char *user, const struct wtap_pkthdr *phdr, int offset,
union pseudo_header *pseudo_header, const u_char *buf)
union wtap_pseudo_header *pseudo_header, const u_char *buf)
{
cb_args_t *args = (cb_args_t *) user;
capture_file *cf = args->cf;

View File

@ -1,7 +1,7 @@
%{
/* ascend-grammar.y
*
* $Id: ascend-grammar.y,v 1.12 2000/05/19 08:18:14 guy Exp $
* $Id: ascend-grammar.y,v 1.13 2000/05/19 23:06:46 gram Exp $
*
* Wiretap Library
* Copyright (c) 1998 by Gilbert Ramirez <gram@xiexie.org>
@ -56,7 +56,7 @@ WD_DIALOUT_DISP: chunk 2515EE type IP.
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include "wtap.h"
#include "wtap-int.h"
#include "buffer.h"
#include "ascend.h"
#include "ascend-int.h"

View File

@ -1,7 +1,7 @@
%{
/* ascend-scanner.l
*
* $Id: ascend-scanner.l,v 1.15 2000/05/19 08:18:14 guy Exp $
* $Id: ascend-scanner.l,v 1.16 2000/05/19 23:06:46 gram Exp $
*
* Wiretap Library
* Copyright (c) 1998 by Gilbert Ramirez <gram@xiexie.org>
@ -34,7 +34,7 @@
#include <io.h> /* for isatty() on win32 */
#endif
#include "wtap.h"
#include "wtap-int.h"
#include "ascend.h"
#include "ascend-grammar.h"
#include "ascend-int.h"

View File

@ -1,6 +1,6 @@
/* ascend.c
*
* $Id: ascend.c,v 1.15 2000/05/18 09:09:21 guy Exp $
* $Id: ascend.c,v 1.16 2000/05/19 23:06:47 gram Exp $
*
* Wiretap Library
* Copyright (c) 1998 by Gilbert Ramirez <gram@xiexie.org>
@ -23,7 +23,7 @@
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include "wtap.h"
#include "wtap-int.h"
#include "buffer.h"
#include "ascend.h"
#include "ascend-int.h"
@ -99,7 +99,7 @@ static const char ascend_w2magic[] = { 'W', 'D', '_', 'D', 'I', 'A', 'L', 'O', '
static int ascend_read(wtap *wth, int *err);
static int ascend_seek_read (wtap *wth, int seek_off,
union pseudo_header *pseudo_header, guint8 *pd, int len);
union wtap_pseudo_header *pseudo_header, guint8 *pd, int len);
static void ascend_close(wtap *wth);
/* Seeks to the beginning of the next packet, and returns the
@ -229,7 +229,7 @@ static int ascend_read(wtap *wth, int *err)
}
static int ascend_seek_read (wtap *wth, int seek_off,
union pseudo_header *pseudo_header, guint8 *pd, int len)
union wtap_pseudo_header *pseudo_header, guint8 *pd, int len)
{
file_seek(wth->random_fh, seek_off - 1, SEEK_SET);
return parse_ascend(wth->random_fh, pd, &pseudo_header->ascend, NULL, len);

View File

@ -1,6 +1,6 @@
/* file.c
*
* $Id: file.c,v 1.51 2000/05/18 09:09:25 guy Exp $
* $Id: file.c,v 1.52 2000/05/19 23:06:48 gram Exp $
*
* Wiretap Library
* Copyright (c) 1998 by Gilbert Ramirez <gram@xiexie.org>
@ -35,7 +35,7 @@
#include <io.h> /* open/close on win32 */
#endif
#include "wtap.h"
#include "wtap-int.h"
#include "file_wrappers.h"
#include "buffer.h"
#include "lanalyzer.h"
@ -97,7 +97,7 @@ static int (*open_routines[])(wtap *, int *) = {
};
int wtap_def_seek_read(wtap *wth, int seek_off,
union pseudo_header *pseudo_header, guint8 *pd, int len)
union wtap_pseudo_header *pseudo_header, guint8 *pd, int len)
{
file_seek(wth->random_fh, seek_off, SEEK_SET);
@ -444,7 +444,7 @@ FILE* wtap_dump_file(wtap_dumper *wdh)
}
gboolean wtap_dump(wtap_dumper *wdh, const struct wtap_pkthdr *phdr,
const union pseudo_header *pseudo_header, const u_char *pd, int *err)
const union wtap_pseudo_header *pseudo_header, const u_char *pd, int *err)
{
return (wdh->subtype_write)(wdh, phdr, pseudo_header, pd, err);
}

View File

@ -1,6 +1,6 @@
/* file_wrappers.c
*
* $Id: file_wrappers.c,v 1.6 2000/03/14 18:27:44 guy Exp $
* $Id: file_wrappers.c,v 1.7 2000/05/19 23:06:50 gram Exp $
*
* Wiretap Library
* Copyright (c) 1998 by Gilbert Ramirez <gram@xiexie.org>
@ -99,7 +99,7 @@
#include <errno.h>
#include <stdio.h>
#include "wtap.h"
#include "wtap-int.h"
#include "file_wrappers.h"
#ifdef HAVE_LIBZ

View File

@ -1,6 +1,6 @@
/* i4btrace.c
*
* $Id: i4btrace.c,v 1.6 2000/05/19 08:18:15 guy Exp $
* $Id: i4btrace.c,v 1.7 2000/05/19 23:06:50 gram Exp $
*
* Wiretap Library
* Copyright (c) 1999 by Bert Driehuis <driehuis@playbeing.org>
@ -27,14 +27,14 @@
#include <stdlib.h>
#include <errno.h>
#include <time.h>
#include "wtap.h"
#include "wtap-int.h"
#include "file_wrappers.h"
#include "buffer.h"
#include "i4b_trace.h"
static int i4btrace_read(wtap *wth, int *err);
static int i4btrace_seek_read(wtap *wth, int seek_off,
union pseudo_header *pseudo_header, u_char *pd, int length);
union wtap_pseudo_header *pseudo_header, u_char *pd, int length);
static int i4b_read_rec_header(FILE_T fh, i4b_trace_hdr_t *hdr, int *err);
static void i4b_byte_swap_header(wtap *wth, i4b_trace_hdr_t *hdr);
static int i4b_read_rec_data(FILE_T fh, char *pd, int length, int *err);
@ -195,7 +195,7 @@ static int i4btrace_read(wtap *wth, int *err)
static int
i4btrace_seek_read(wtap *wth, int seek_off,
union pseudo_header *pseudo_header, u_char *pd, int length)
union wtap_pseudo_header *pseudo_header, u_char *pd, int length)
{
int ret;
int err; /* XXX - return this */

View File

@ -1,6 +1,6 @@
/* iptrace.c
*
* $Id: iptrace.c,v 1.28 2000/05/19 08:18:15 guy Exp $
* $Id: iptrace.c,v 1.29 2000/05/19 23:06:51 gram Exp $
*
* Wiretap Library
* Copyright (c) 1998 by Gilbert Ramirez <gram@xiexie.org>
@ -27,22 +27,22 @@
#include <errno.h>
#include <time.h>
#include <string.h>
#include "wtap.h"
#include "wtap-int.h"
#include "file_wrappers.h"
#include "buffer.h"
#include "iptrace.h"
static int iptrace_read_1_0(wtap *wth, int *err);
static int iptrace_seek_read_1_0(wtap *wth, int seek_off,
union pseudo_header *pseudo_header, u_char *pd, int packet_size);
union wtap_pseudo_header *pseudo_header, u_char *pd, int packet_size);
static int iptrace_read_2_0(wtap *wth, int *err);
static int iptrace_seek_read_2_0(wtap *wth, int seek_off,
union pseudo_header *pseudo_header, u_char *pd, int packet_size);
union wtap_pseudo_header *pseudo_header, u_char *pd, int packet_size);
static int iptrace_read_rec_header(FILE_T fh, guint8 *header, int header_len,
int *err);
static int iptrace_read_rec_data(FILE_T fh, guint8 *data_ptr, int packet_size,
int *err);
static void get_atm_pseudo_header(union pseudo_header *pseudo_header,
static void get_atm_pseudo_header(union wtap_pseudo_header *pseudo_header,
guint8 *header);
static int wtap_encap_ift(unsigned int ift);
@ -164,7 +164,7 @@ static int iptrace_read_1_0(wtap *wth, int *err)
}
static int iptrace_seek_read_1_0(wtap *wth, int seek_off,
union pseudo_header *pseudo_header, u_char *pd, int packet_size)
union wtap_pseudo_header *pseudo_header, u_char *pd, int packet_size)
{
int ret;
int err; /* XXX - return this */
@ -277,7 +277,7 @@ static int iptrace_read_2_0(wtap *wth, int *err)
}
static int iptrace_seek_read_2_0(wtap *wth, int seek_off,
union pseudo_header *pseudo_header, u_char *pd, int packet_size)
union wtap_pseudo_header *pseudo_header, u_char *pd, int packet_size)
{
int ret;
int err; /* XXX - return this */
@ -354,7 +354,7 @@ iptrace_read_rec_data(FILE_T fh, guint8 *data_ptr, int packet_size, int *err)
* in some fashion what sort of traffic it is, or being told by the user.
*/
static void
get_atm_pseudo_header(union pseudo_header *pseudo_header, guint8 *header)
get_atm_pseudo_header(union wtap_pseudo_header *pseudo_header, guint8 *header)
{
char if_text[9];
char *decimal;

View File

@ -1,6 +1,6 @@
/* lanalyzer.c
*
* $Id: lanalyzer.c,v 1.22 2000/05/18 09:09:31 guy Exp $
* $Id: lanalyzer.c,v 1.23 2000/05/19 23:06:52 gram Exp $
*
* Wiretap Library
* Copyright (c) 1998 by Gilbert Ramirez <gram@xiexie.org>
@ -26,7 +26,7 @@
#include <stdlib.h>
#include <errno.h>
#include <time.h>
#include "wtap.h"
#include "wtap-int.h"
#include "file_wrappers.h"
#include "buffer.h"
#include "lanalyzer.h"

View File

@ -1,6 +1,6 @@
/* libpcap.c
*
* $Id: libpcap.c,v 1.34 2000/05/18 09:09:32 guy Exp $
* $Id: libpcap.c,v 1.35 2000/05/19 23:06:53 gram Exp $
*
* Wiretap Library
* Copyright (c) 1998 by Gilbert Ramirez <gram@xiexie.org>
@ -25,7 +25,7 @@
#endif
#include <stdlib.h>
#include <errno.h>
#include "wtap.h"
#include "wtap-int.h"
#include "file_wrappers.h"
#include "buffer.h"
#include "libpcap.h"
@ -90,7 +90,7 @@ static int libpcap_read(wtap *wth, int *err);
static void adjust_header(wtap *wth, struct pcaprec_hdr *hdr);
static void libpcap_close(wtap *wth);
static gboolean libpcap_dump(wtap_dumper *wdh, const struct wtap_pkthdr *phdr,
const union pseudo_header *pseudo_header, const u_char *pd, int *err);
const union wtap_pseudo_header *pseudo_header, const u_char *pd, int *err);
/*
* XXX - this is a bit of a mess. OpenBSD, and perhaps NetBSD, and
@ -564,7 +564,7 @@ gboolean libpcap_dump_open(wtap_dumper *wdh, int *err)
/* Write a record for a packet to a dump file.
Returns TRUE on success, FALSE on failure. */
static gboolean libpcap_dump(wtap_dumper *wdh, const struct wtap_pkthdr *phdr,
const union pseudo_header *pseudo_header, const u_char *pd, int *err)
const union wtap_pseudo_header *pseudo_header, const u_char *pd, int *err)
{
struct pcaprec_modified_hdr rec_hdr;
int hdr_size;

View File

@ -1,6 +1,6 @@
/* netmon.c
*
* $Id: netmon.c,v 1.30 2000/05/18 09:09:36 guy Exp $
* $Id: netmon.c,v 1.31 2000/05/19 23:06:55 gram Exp $
*
* Wiretap Library
* Copyright (c) 1998 by Gilbert Ramirez <gram@xiexie.org>
@ -26,7 +26,7 @@
#include <errno.h>
#include <time.h>
#include <string.h>
#include "wtap.h"
#include "wtap-int.h"
#include "file_wrappers.h"
#include "buffer.h"
#include "netmon.h"
@ -97,7 +97,7 @@ struct netmonrec_2_x_hdr {
static int netmon_read(wtap *wth, int *err);
static void netmon_close(wtap *wth);
static gboolean netmon_dump(wtap_dumper *wdh, const struct wtap_pkthdr *phdr,
const union pseudo_header *pseudo_header, const u_char *pd, int *err);
const union wtap_pseudo_header *pseudo_header, const u_char *pd, int *err);
static gboolean netmon_dump_close(wtap_dumper *wdh, int *err);
int netmon_open(wtap *wth, int *err)
@ -472,7 +472,7 @@ gboolean netmon_dump_open(wtap_dumper *wdh, int *err)
/* Write a record for a packet to a dump file.
Returns TRUE on success, FALSE on failure. */
static gboolean netmon_dump(wtap_dumper *wdh, const struct wtap_pkthdr *phdr,
const union pseudo_header *pseudo_header, const u_char *pd, int *err)
const union wtap_pseudo_header *pseudo_header, const u_char *pd, int *err)
{
netmon_dump_t *netmon = wdh->dump.netmon;
struct netmonrec_1_x_hdr rec_1_x_hdr;

View File

@ -1,6 +1,6 @@
/* nettl.c
*
* $Id: nettl.c,v 1.12 2000/05/19 08:18:15 guy Exp $
* $Id: nettl.c,v 1.13 2000/05/19 23:06:57 gram Exp $
*
* Wiretap Library
* Copyright (c) 1998 by Gilbert Ramirez <gram@xiexie.org>
@ -27,7 +27,7 @@
#include <stdlib.h>
#include <errno.h>
#include <time.h>
#include "wtap.h"
#include "wtap-int.h"
#include "file_wrappers.h"
#include "buffer.h"
#include "nettl.h"
@ -66,9 +66,9 @@ struct nettlrec_ns_ls_ip_hdr {
static int nettl_read(wtap *wth, int *err);
static int nettl_seek_read(wtap *wth, int seek_off,
union pseudo_header *pseudo_header, u_char *pd, int length);
union wtap_pseudo_header *pseudo_header, u_char *pd, int length);
static int nettl_read_rec_header(wtap *wth, FILE_T fh,
struct wtap_pkthdr *phdr, union pseudo_header *pseudo_header,
struct wtap_pkthdr *phdr, union wtap_pseudo_header *pseudo_header,
int *err);
static int nettl_read_rec_data(FILE_T fh, char *pd, int length, int *err);
static void nettl_close(wtap *wth);
@ -151,7 +151,7 @@ static int nettl_read(wtap *wth, int *err)
static int
nettl_seek_read(wtap *wth, int seek_off,
union pseudo_header *pseudo_header, u_char *pd, int length)
union wtap_pseudo_header *pseudo_header, u_char *pd, int length)
{
int ret;
int err; /* XXX - return this */
@ -175,7 +175,7 @@ nettl_seek_read(wtap *wth, int seek_off,
static int
nettl_read_rec_header(wtap *wth, FILE_T fh, struct wtap_pkthdr *phdr,
union pseudo_header *pseudo_header, int *err)
union wtap_pseudo_header *pseudo_header, int *err)
{
int bytes_read;
struct nettlrec_sx25l2_hdr lapb_hdr;

View File

@ -1,6 +1,6 @@
/* netxray.c
*
* $Id: netxray.c,v 1.27 2000/05/18 09:09:39 guy Exp $
* $Id: netxray.c,v 1.28 2000/05/19 23:06:58 gram Exp $
*
* Wiretap Library
* Copyright (c) 1998 by Gilbert Ramirez <gram@xiexie.org>
@ -28,7 +28,7 @@
#include <errno.h>
#include <time.h>
#include <string.h>
#include "wtap.h"
#include "wtap-int.h"
#include "file_wrappers.h"
#include "netxray.h"
#include "buffer.h"
@ -93,7 +93,7 @@ struct netxrayrec_2_x_hdr {
static int netxray_read(wtap *wth, int *err);
static void netxray_close(wtap *wth);
static gboolean netxray_dump_1_1(wtap_dumper *wdh, const struct wtap_pkthdr *phdr,
const union pseudo_header *pseudo_header, const u_char *pd, int *err);
const union wtap_pseudo_header *pseudo_header, const u_char *pd, int *err);
static gboolean netxray_dump_close_1_1(wtap_dumper *wdh, int *err);
int netxray_open(wtap *wth, int *err)
@ -362,7 +362,7 @@ gboolean netxray_dump_open_1_1(wtap_dumper *wdh, int *err)
/* Write a record for a packet to a dump file.
Returns TRUE on success, FALSE on failure. */
static gboolean netxray_dump_1_1(wtap_dumper *wdh, const struct wtap_pkthdr *phdr,
const union pseudo_header *pseudo_header, const u_char *pd, int *err)
const union wtap_pseudo_header *pseudo_header, const u_char *pd, int *err)
{
netxray_dump_t *netxray = wdh->dump.netxray;
guint32 timestamp;

View File

@ -1,6 +1,6 @@
/* ngsniffer.c
*
* $Id: ngsniffer.c,v 1.41 2000/05/19 08:18:16 guy Exp $
* $Id: ngsniffer.c,v 1.42 2000/05/19 23:06:59 gram Exp $
*
* Wiretap Library
* Copyright (c) 1998 by Gilbert Ramirez <gram@xiexie.org>
@ -63,7 +63,7 @@
#include <errno.h>
#include <time.h>
#include <string.h>
#include "wtap.h"
#include "wtap-int.h"
#include "file_wrappers.h"
#include "buffer.h"
#include "ngsniffer.h"
@ -248,21 +248,21 @@ static double Usec[] = { 15.0, 0.838096, 15.0, 0.5, 2.0, 1.0, 0.1 };
static int ngsniffer_read(wtap *wth, int *err);
static int ngsniffer_seek_read(wtap *wth, int seek_off,
union pseudo_header *pseudo_header, u_char *pd, int packet_size);
union wtap_pseudo_header *pseudo_header, u_char *pd, int packet_size);
static int ngsniffer_read_rec_header(FILE_T fh, guint16 *typep,
guint16 *lengthp, int *err);
static int ngsniffer_read_frame2(FILE_T fh, struct frame2_rec *frame2,
int *err);
static void set_pseudo_header_frame2(union pseudo_header *pseudo_header,
static void set_pseudo_header_frame2(union wtap_pseudo_header *pseudo_header,
struct frame2_rec *frame2);
static int ngsniffer_read_frame4(FILE_T fh, struct frame4_rec *frame4,
int *err);
static void set_pseudo_header_frame4(union pseudo_header *pseudo_header,
static void set_pseudo_header_frame4(union wtap_pseudo_header *pseudo_header,
struct frame4_rec *frame4);
static int ngsniffer_read_rec_data(FILE_T fh, char *pd, int length, int *err);
static void ngsniffer_close(wtap *wth);
static gboolean ngsniffer_dump(wtap_dumper *wdh, const struct wtap_pkthdr *phdr,
const union pseudo_header *pseudo_header, const u_char *pd, int *err);
const union wtap_pseudo_header *pseudo_header, const u_char *pd, int *err);
static gboolean ngsniffer_dump_close(wtap_dumper *wdh, int *err);
int ngsniffer_open(wtap *wth, int *err)
@ -577,7 +577,7 @@ found:
}
static int ngsniffer_seek_read(wtap *wth, int seek_off,
union pseudo_header *pseudo_header, u_char *pd, int packet_size)
union wtap_pseudo_header *pseudo_header, u_char *pd, int packet_size)
{
int ret;
int err; /* XXX - return this */
@ -684,7 +684,7 @@ static int ngsniffer_read_frame2(FILE_T fh, struct frame2_rec *frame2,
return 0;
}
static void set_pseudo_header_frame2(union pseudo_header *pseudo_header,
static void set_pseudo_header_frame2(union wtap_pseudo_header *pseudo_header,
struct frame2_rec *frame2)
{
/*
@ -728,7 +728,7 @@ static int ngsniffer_read_frame4(FILE_T fh, struct frame4_rec *frame4,
return 0;
}
static void set_pseudo_header_frame4(union pseudo_header *pseudo_header,
static void set_pseudo_header_frame4(union wtap_pseudo_header *pseudo_header,
struct frame4_rec *frame4)
{
pseudo_header->ngsniffer_atm.AppTrafType = frame4->atm_info.AppTrafType;
@ -834,7 +834,7 @@ gboolean ngsniffer_dump_open(wtap_dumper *wdh, int *err)
/* Write a record for a packet to a dump file.
Returns TRUE on success, FALSE on failure. */
static gboolean ngsniffer_dump(wtap_dumper *wdh, const struct wtap_pkthdr *phdr,
const union pseudo_header *pseudo_header, const u_char *pd, int *err)
const union wtap_pseudo_header *pseudo_header, const u_char *pd, int *err)
{
ngsniffer_dump_t *priv = wdh->dump.ngsniffer;
struct frame2_rec rec_hdr;

View File

@ -1,6 +1,6 @@
/* radcom.c
*
* $Id: radcom.c,v 1.22 2000/05/19 08:18:16 guy Exp $
* $Id: radcom.c,v 1.23 2000/05/19 23:07:01 gram Exp $
*
* Wiretap Library
* Copyright (c) 1998 by Gilbert Ramirez <gram@xiexie.org>
@ -27,7 +27,7 @@
#include <stdlib.h>
#include <errno.h>
#include <time.h>
#include "wtap.h"
#include "wtap-int.h"
#include "file_wrappers.h"
#include "buffer.h"
#include "radcom.h"
@ -69,7 +69,7 @@ struct radcomrec_hdr {
static int radcom_read(wtap *wth, int *err);
static int radcom_seek_read(wtap *wth, int seek_off,
union pseudo_header *pseudo_header, u_char *pd, int length);
union wtap_pseudo_header *pseudo_header, u_char *pd, int length);
static int radcom_read_rec_header(FILE_T fh, struct radcomrec_hdr *hdr,
int *err);
static int radcom_read_rec_data(FILE_T fh, char *pd, int length, int *err);
@ -292,7 +292,7 @@ static int radcom_read(wtap *wth, int *err)
static int
radcom_seek_read(wtap *wth, int seek_off,
union pseudo_header *pseudo_header, u_char *pd, int length)
union wtap_pseudo_header *pseudo_header, u_char *pd, int length)
{
int ret;
int err; /* XXX - return this */

View File

@ -1,6 +1,6 @@
/* snoop.c
*
* $Id: snoop.c,v 1.27 2000/05/19 08:18:17 guy Exp $
* $Id: snoop.c,v 1.28 2000/05/19 23:07:02 gram Exp $
*
* Wiretap Library
* Copyright (c) 1998 by Gilbert Ramirez <gram@xiexie.org>
@ -24,7 +24,7 @@
#include "config.h"
#endif
#include <errno.h>
#include "wtap.h"
#include "wtap-int.h"
#include "file_wrappers.h"
#include "buffer.h"
#include "snoop.h"
@ -57,12 +57,12 @@ struct snooprec_hdr {
static int snoop_read(wtap *wth, int *err);
static int snoop_seek_read(wtap *wth, int seek_off,
union pseudo_header *pseudo_header, u_char *pd, int length);
union wtap_pseudo_header *pseudo_header, u_char *pd, int length);
static int snoop_read_atm_pseudoheader(FILE_T fh,
union pseudo_header *pseudo_header, int *err);
union wtap_pseudo_header *pseudo_header, int *err);
static int snoop_read_rec_data(FILE_T fh, char *pd, int length, int *err);
static gboolean snoop_dump(wtap_dumper *wdh, const struct wtap_pkthdr *phdr,
const union pseudo_header *pseudo_header, const u_char *pd, int *err);
const union wtap_pseudo_header *pseudo_header, const u_char *pd, int *err);
/*
* See
@ -320,7 +320,7 @@ static int snoop_read(wtap *wth, int *err)
static int
snoop_seek_read(wtap *wth, int seek_off,
union pseudo_header *pseudo_header, u_char *pd, int length)
union wtap_pseudo_header *pseudo_header, u_char *pd, int length)
{
int ret;
int err; /* XXX - return this */
@ -343,7 +343,7 @@ snoop_seek_read(wtap *wth, int seek_off,
}
static int
snoop_read_atm_pseudoheader(FILE_T fh, union pseudo_header *pseudo_header,
snoop_read_atm_pseudoheader(FILE_T fh, union wtap_pseudo_header *pseudo_header,
int *err)
{
char atm_phdr[4];
@ -471,7 +471,7 @@ gboolean snoop_dump_open(wtap_dumper *wdh, int *err)
/* Write a record for a packet to a dump file.
Returns TRUE on success, FALSE on failure. */
static gboolean snoop_dump(wtap_dumper *wdh, const struct wtap_pkthdr *phdr,
const union pseudo_header *pseudo_header, const u_char *pd, int *err)
const union wtap_pseudo_header *pseudo_header, const u_char *pd, int *err)
{
struct snooprec_hdr rec_hdr;
int nwritten;

View File

@ -1,6 +1,6 @@
/* toshiba.c
*
* $Id: toshiba.c,v 1.10 2000/05/19 08:18:17 guy Exp $
* $Id: toshiba.c,v 1.11 2000/05/19 23:07:03 gram Exp $
*
* Wiretap Library
* Copyright (c) 1998 by Gilbert Ramirez <gram@xiexie.org>
@ -23,7 +23,7 @@
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include "wtap.h"
#include "wtap-int.h"
#include "buffer.h"
#include "toshiba.h"
#include "file_wrappers.h"
@ -105,11 +105,12 @@ static const char toshiba_rec_magic[] = { '[', 'N', 'o', '.' };
#define TOSHIBA_REC_MAGIC_SIZE (sizeof toshiba_rec_magic / sizeof toshiba_rec_magic[0])
static int toshiba_read(wtap *wth, int *err);
static int toshiba_seek_read(wtap *wth, int seek_off, union pseudo_header *pseudo_header, guint8 *pd, int len);
static int toshiba_seek_read(wtap *wth, int seek_off,
union wtap_pseudo_header *pseudo_header, guint8 *pd, int len);
static gboolean parse_single_hex_dump_line(char* rec, guint8 *buf, int byte_offset);
static int parse_toshiba_hex_dump(FILE_T fh, int pkt_len, guint8* buf, int *err);
static int parse_toshiba_rec_hdr(wtap *wth, FILE_T fh,
union pseudo_header *pseudo_header, int *err);
union wtap_pseudo_header *pseudo_header, int *err);
/* Seeks to the beginning of the next packet, and returns the
byte offset. Returns -1 on failure. */
@ -228,7 +229,7 @@ static int toshiba_read(wtap *wth, int *err)
/* Used to read packets in random-access fashion */
static int
toshiba_seek_read (wtap *wth, int seek_off, union pseudo_header *pseudo_header,
toshiba_seek_read (wtap *wth, int seek_off, union wtap_pseudo_header *pseudo_header,
guint8 *pd, int len)
{
int pkt_len;
@ -251,7 +252,7 @@ toshiba_seek_read (wtap *wth, int seek_off, union pseudo_header *pseudo_header,
/* Parses a packet record header. */
static int
parse_toshiba_rec_hdr(wtap *wth, FILE_T fh,
union pseudo_header *pseudo_header, int *err)
union wtap_pseudo_header *pseudo_header, int *err)
{
char line[TOSHIBA_LINE_LENGTH];
int num_items_scanned;

250
wiretap/wtap-int.h Normal file
View File

@ -0,0 +1,250 @@
/* wtap-int.h
*
* $Id: wtap-int.h,v 1.1 2000/05/19 23:07:04 gram Exp $
*
* Wiretap Library
* Copyright (c) 1998 by Gilbert Ramirez <gram@xiexie.org>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
*/
#ifndef __WTAP_INT_H__
#define __WTAP_INT_H__
#include <sys/types.h>
#ifdef HAVE_SYS_TIME_H
#include <sys/time.h>
#endif
#ifdef HAVE_WINSOCK_H
#include <winsock.h>
#endif
#include <glib.h>
#include <stdio.h>
#ifdef HAVE_LIBZ
#include "zlib.h"
#define FILE_T gzFile
#else /* No zLib */
#define FILE_T FILE *
#endif /* HAVE_LIBZ */
#include "wtap.h"
typedef struct {
double timeunit;
time_t start;
int is_atm;
} ngsniffer_t;
typedef struct {
gboolean byte_swapped;
int bchannel_prot[2]; /* For the V.120 heuristic */
} i4btrace_t;
typedef struct {
gboolean is_hpux_11;
} nettl_t;
typedef struct {
time_t start;
} lanalyzer_t;
typedef struct {
gboolean byte_swapped;
gboolean modified;
guint16 version_major;
guint16 version_minor;
} libpcap_t;
typedef struct {
time_t start_secs;
guint32 start_usecs;
guint8 version_major;
guint32 *frame_table;
int frame_table_size;
int current_frame;
} netmon_t;
typedef struct {
time_t start_time;
double timeunit;
double start_timestamp;
int wrapped;
int end_offset;
int version_major;
} netxray_t;
typedef struct {
time_t inittime;
int adjusted;
int seek_add;
} ascend_t;
typedef int (*subtype_read_func)(struct wtap*, int*);
typedef int (*subtype_seek_read_func)(struct wtap*, int, union wtap_pseudo_header*,
guint8*, int);
struct wtap {
FILE_T fh;
int fd; /* File descriptor for cap file */
FILE_T random_fh; /* Secondary FILE_T for random access */
int file_type;
int snapshot_length;
struct Buffer *frame_buffer;
struct wtap_pkthdr phdr;
union wtap_pseudo_header pseudo_header;
long data_offset;
union {
libpcap_t *pcap;
lanalyzer_t *lanalyzer;
ngsniffer_t *ngsniffer;
i4btrace_t *i4btrace;
nettl_t *nettl;
netmon_t *netmon;
netxray_t *netxray;
ascend_t *ascend;
} capture;
subtype_read_func subtype_read;
subtype_seek_read_func subtype_seek_read;
void (*subtype_close)(struct wtap*);
int file_encap; /* per-file, for those
file formats that have
per-file encapsulation
types */
};
struct wtap_dumper;
typedef gboolean (*subtype_write_func)(struct wtap_dumper*,
const struct wtap_pkthdr*, const union wtap_pseudo_header*,
const u_char*, int*);
typedef gboolean (*subtype_close_func)(struct wtap_dumper*, int*);
typedef struct {
gboolean first_frame;
time_t start;
} ngsniffer_dump_t;
typedef struct {
gboolean first_frame;
struct timeval start;
guint32 nframes;
} netxray_dump_t;
typedef struct {
gboolean got_first_record_time;
struct timeval first_record_time;
guint32 frame_table_offset;
guint32 *frame_table;
int frame_table_index;
int frame_table_size;
} netmon_dump_t;
struct wtap_dumper {
FILE* fh;
int file_type;
int snaplen;
int encap;
union {
void *opaque;
ngsniffer_dump_t *ngsniffer;
netmon_dump_t *netmon;
netxray_dump_t *netxray;
} dump;
subtype_write_func subtype_write;
subtype_close_func subtype_close;
};
/* Macros to byte-swap 32-bit and 16-bit quantities. */
#define BSWAP32(x) \
((((x)&0xFF000000)>>24) | \
(((x)&0x00FF0000)>>8) | \
(((x)&0x0000FF00)<<8) | \
(((x)&0x000000FF)<<24))
#define BSWAP16(x) \
((((x)&0xFF00)>>8) | \
(((x)&0x00FF)<<8))
/* Turn host-byte-order values into little-endian values. */
#ifdef WORDS_BIGENDIAN
#define htoles(s) ((guint16) \
((guint16)((s) & 0x00FF)<<8| \
(guint16)((s) & 0xFF00)>>8))
#define htolel(l) ((guint32)((l) & 0x000000FF)<<24| \
(guint32)((l) & 0x0000FF00)<<8| \
(guint32)((l) & 0x00FF0000)>>8| \
(guint32)((l) & 0xFF000000)>>24)
#else
#define htoles(s) (s)
#define htolel(l) (l)
#endif
/* Pointer versions of ntohs and ntohl. Given a pointer to a member of a
* byte array, returns the value of the two or four bytes at the pointer.
* The pletoh[sl] versions return the little-endian representation.
*/
#ifndef pntohs
#define pntohs(p) ((guint16) \
((guint16)*((guint8 *)p+0)<<8| \
(guint16)*((guint8 *)p+1)<<0))
#endif
#ifndef pntohl
#define pntohl(p) ((guint32)*((guint8 *)p+0)<<24| \
(guint32)*((guint8 *)p+1)<<16| \
(guint32)*((guint8 *)p+2)<<8| \
(guint32)*((guint8 *)p+3)<<0)
#endif
#ifndef phtons
#define phtons(p) ((guint16) \
((guint16)*((guint8 *)p+0)<<8| \
(guint16)*((guint8 *)p+1)<<0))
#endif
#ifndef phtonl
#define phtonl(p) ((guint32)*((guint8 *)p+0)<<24| \
(guint32)*((guint8 *)p+1)<<16| \
(guint32)*((guint8 *)p+2)<<8| \
(guint32)*((guint8 *)p+3)<<0)
#endif
#ifndef pletohs
#define pletohs(p) ((guint16) \
((guint16)*((guint8 *)p+1)<<8| \
(guint16)*((guint8 *)p+0)<<0))
#endif
#ifndef pletohl
#define pletohl(p) ((guint32)*((guint8 *)p+3)<<24| \
(guint32)*((guint8 *)p+2)<<16| \
(guint32)*((guint8 *)p+1)<<8| \
(guint32)*((guint8 *)p+0)<<0)
#endif
#endif /* __WTAP_INT_H__ */

View File

@ -1,6 +1,6 @@
/* wtap.c
*
* $Id: wtap.c,v 1.42 2000/05/19 05:33:32 guy Exp $
* $Id: wtap.c,v 1.43 2000/05/19 23:07:04 gram Exp $
*
* Wiretap Library
* Copyright (c) 1998 by Gilbert Ramirez <gram@xiexie.org>
@ -26,7 +26,7 @@
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include "wtap.h"
#include "wtap-int.h"
#include "file_wrappers.h"
#include "buffer.h"
@ -242,7 +242,7 @@ int wtap_loop(wtap *wth, int count, wtap_handler callback, u_char* user,
}
int wtap_seek_read(wtap *wth, int seek_off,
union pseudo_header *pseudo_header, guint8 *pd, int len)
union wtap_pseudo_header *pseudo_header, guint8 *pd, int len)
{
return wth->subtype_seek_read(wth, seek_off, pseudo_header, pd, len);
}

View File

@ -1,6 +1,6 @@
/* wtap.h
*
* $Id: wtap.h,v 1.70 2000/05/18 09:09:50 guy Exp $
* $Id: wtap.h,v 1.71 2000/05/19 23:07:04 gram Exp $
*
* Wiretap Library
* Copyright (c) 1998 by Gilbert Ramirez <gram@xiexie.org>
@ -142,63 +142,6 @@
#include <glib.h>
#include <stdio.h>
#ifdef HAVE_LIBZ
#include "zlib.h"
#define FILE_T gzFile
#else /* No zLib */
#define FILE_T FILE *
#endif /* HAVE_LIBZ */
typedef struct {
double timeunit;
time_t start;
int is_atm;
} ngsniffer_t;
typedef struct {
gboolean byte_swapped;
int bchannel_prot[2]; /* For the V.120 heuristic */
} i4btrace_t;
typedef struct {
gboolean is_hpux_11;
} nettl_t;
typedef struct {
time_t start;
} lanalyzer_t;
typedef struct {
gboolean byte_swapped;
gboolean modified;
guint16 version_major;
guint16 version_minor;
} libpcap_t;
typedef struct {
time_t start_secs;
guint32 start_usecs;
guint8 version_major;
guint32 *frame_table;
int frame_table_size;
int current_frame;
} netmon_t;
typedef struct {
time_t start_time;
double timeunit;
double start_timestamp;
int wrapped;
int end_offset;
int version_major;
} netxray_t;
typedef struct {
time_t inittime;
int adjusted;
int seek_add;
} ascend_t;
/* Packet "pseudo-header" information for X.25 capture files. */
struct x25_phdr {
guint8 flags; /* ENCAP_LAPB : 1st bit means From DCE */
@ -292,7 +235,7 @@ struct lapd_phdr {
#define AHLT_VCMX_FRAGMENTS 0xc /* VCMX: Fragments */
#define AHLT_VCMX_BPDU 0xe /* VCMX: BPDU */
union pseudo_header {
union wtap_pseudo_header {
struct x25_phdr x25;
struct ngsniffer_atm_phdr ngsniffer_atm;
struct ascend_phdr ascend;
@ -307,89 +250,14 @@ struct wtap_pkthdr {
};
typedef void (*wtap_handler)(u_char*, const struct wtap_pkthdr*,
int, union pseudo_header *pseudo_header, const u_char *);
int, union wtap_pseudo_header *pseudo_header, const u_char *);
struct wtap;
struct Buffer;
typedef int (*subtype_read_func)(struct wtap*, int*);
typedef int (*subtype_seek_read_func)(struct wtap*, int, union pseudo_header*,
guint8*, int);
typedef struct wtap {
FILE_T fh;
int fd; /* File descriptor for cap file */
FILE_T random_fh; /* Secondary FILE_T for random access */
int file_type;
int snapshot_length;
struct Buffer *frame_buffer;
struct wtap_pkthdr phdr;
union pseudo_header pseudo_header;
long data_offset;
union {
libpcap_t *pcap;
lanalyzer_t *lanalyzer;
ngsniffer_t *ngsniffer;
i4btrace_t *i4btrace;
nettl_t *nettl;
netmon_t *netmon;
netxray_t *netxray;
ascend_t *ascend;
} capture;
subtype_read_func subtype_read;
subtype_seek_read_func subtype_seek_read;
void (*subtype_close)(struct wtap*);
int file_encap; /* per-file, for those
file formats that have
per-file encapsulation
types */
} wtap;
struct wtap_dumper;
typedef gboolean (*subtype_write_func)(struct wtap_dumper*,
const struct wtap_pkthdr*, const union pseudo_header*,
const u_char*, int*);
typedef gboolean (*subtype_close_func)(struct wtap_dumper*, int*);
typedef struct {
gboolean first_frame;
time_t start;
} ngsniffer_dump_t;
typedef struct {
gboolean first_frame;
struct timeval start;
guint32 nframes;
} netxray_dump_t;
typedef struct {
gboolean got_first_record_time;
struct timeval first_record_time;
guint32 frame_table_offset;
guint32 *frame_table;
int frame_table_index;
int frame_table_size;
} netmon_dump_t;
typedef struct wtap_dumper {
FILE* fh;
int file_type;
int snaplen;
int encap;
union {
void *opaque;
ngsniffer_dump_t *ngsniffer;
netmon_dump_t *netmon;
netxray_dump_t *netxray;
} dump;
subtype_write_func subtype_write;
subtype_close_func subtype_close;
} wtap_dumper;
typedef struct wtap wtap;
typedef struct wtap_dumper wtap_dumper;
/*
* On failure, "wtap_open_offline()" returns NULL, and puts into the
@ -399,7 +267,7 @@ typedef struct wtap_dumper {
*
* a negative number, indicating the type of error, on other failures.
*/
wtap* wtap_open_offline(const char *filename, int *err, gboolean do_random);
struct wtap* wtap_open_offline(const char *filename, int *err, gboolean do_random);
int wtap_loop(wtap *wth, int, wtap_handler, u_char*, int*);
int wtap_read(wtap *wth, int *err);
@ -421,9 +289,9 @@ const char *wtap_strerror(int err);
void wtap_sequential_close(wtap *wth);
void wtap_close(wtap *wth);
int wtap_seek_read (wtap *wth, int seek_off,
union pseudo_header *pseudo_header, guint8 *pd, int len);
union wtap_pseudo_header *pseudo_header, guint8 *pd, int len);
int wtap_def_seek_read (wtap *wth, int seek_off,
union pseudo_header *pseudo_header, guint8 *pd, int len);
union wtap_pseudo_header *pseudo_header, guint8 *pd, int len);
gboolean wtap_dump_can_open(int filetype);
gboolean wtap_dump_can_write_encap(int filetype, int encap);
@ -432,7 +300,7 @@ wtap_dumper* wtap_dump_open(const char *filename, int filetype, int encap,
wtap_dumper* wtap_dump_fdopen(int fd, int filetype, int encap, int snaplen,
int *err);
gboolean wtap_dump(wtap_dumper *, const struct wtap_pkthdr *,
const union pseudo_header *pseudo_header, const u_char *, int *err);
const union wtap_pseudo_header *pseudo_header, const u_char *, int *err);
FILE* wtap_dump_file(wtap_dumper *);
gboolean wtap_dump_close(wtap_dumper *, int *);
@ -480,73 +348,5 @@ int wtap_pcap_encap_to_wtap_encap(int encap);
#define WTAP_ERR_ZLIB_MAX -100
#define WTAP_ERR_ZLIB_MIN -300
/* Macros to byte-swap 32-bit and 16-bit quantities. */
#define BSWAP32(x) \
((((x)&0xFF000000)>>24) | \
(((x)&0x00FF0000)>>8) | \
(((x)&0x0000FF00)<<8) | \
(((x)&0x000000FF)<<24))
#define BSWAP16(x) \
((((x)&0xFF00)>>8) | \
(((x)&0x00FF)<<8))
/* Turn host-byte-order values into little-endian values. */
#ifdef WORDS_BIGENDIAN
#define htoles(s) ((guint16) \
((guint16)((s) & 0x00FF)<<8| \
(guint16)((s) & 0xFF00)>>8))
#define htolel(l) ((guint32)((l) & 0x000000FF)<<24| \
(guint32)((l) & 0x0000FF00)<<8| \
(guint32)((l) & 0x00FF0000)>>8| \
(guint32)((l) & 0xFF000000)>>24)
#else
#define htoles(s) (s)
#define htolel(l) (l)
#endif
/* Pointer versions of ntohs and ntohl. Given a pointer to a member of a
* byte array, returns the value of the two or four bytes at the pointer.
* The pletoh[sl] versions return the little-endian representation.
*/
#ifndef pntohs
#define pntohs(p) ((guint16) \
((guint16)*((guint8 *)p+0)<<8| \
(guint16)*((guint8 *)p+1)<<0))
#endif
#ifndef pntohl
#define pntohl(p) ((guint32)*((guint8 *)p+0)<<24| \
(guint32)*((guint8 *)p+1)<<16| \
(guint32)*((guint8 *)p+2)<<8| \
(guint32)*((guint8 *)p+3)<<0)
#endif
#ifndef phtons
#define phtons(p) ((guint16) \
((guint16)*((guint8 *)p+0)<<8| \
(guint16)*((guint8 *)p+1)<<0))
#endif
#ifndef phtonl
#define phtonl(p) ((guint32)*((guint8 *)p+0)<<24| \
(guint32)*((guint8 *)p+1)<<16| \
(guint32)*((guint8 *)p+2)<<8| \
(guint32)*((guint8 *)p+3)<<0)
#endif
#ifndef pletohs
#define pletohs(p) ((guint16) \
((guint16)*((guint8 *)p+1)<<8| \
(guint16)*((guint8 *)p+0)<<0))
#endif
#ifndef pletohl
#define pletohl(p) ((guint32)*((guint8 *)p+3)<<24| \
(guint32)*((guint8 *)p+2)<<16| \
(guint32)*((guint8 *)p+1)<<8| \
(guint32)*((guint8 *)p+0)<<0)
#endif
#endif /* __WTAP_H__ */