I removed the per-file encapsulation type from wiretap, and make all filetypes
provide a per-packet encapsulation type. this required minor modifications to ethereal. svn path=/trunk/; revision=162
This commit is contained in:
parent
f8046a1f29
commit
7757b2e72b
8
file.c
8
file.c
|
@ -1,7 +1,7 @@
|
|||
/* file.c
|
||||
* File I/O routines
|
||||
*
|
||||
* $Id: file.c,v 1.17 1999/01/03 01:57:24 guy Exp $
|
||||
* $Id: file.c,v 1.18 1999/01/07 16:15:34 gram Exp $
|
||||
*
|
||||
* Ethereal - Network traffic analyzer
|
||||
* By Gerald Combs <gerald@zing.org>
|
||||
|
@ -114,7 +114,6 @@ open_cap_file(char *fname, capture_file *cf) {
|
|||
/* Next, find out what type of file we're dealing with */
|
||||
#ifdef WITH_WIRETAP
|
||||
cf->cd_t = WTAP_FILE_UNKNOWN;
|
||||
cf->lnk_t = WTAP_ENCAP_NONE;
|
||||
#else
|
||||
cf->cd_t = CD_UNKNOWN;
|
||||
cf->lnk_t = DLT_NULL;
|
||||
|
@ -185,7 +184,6 @@ open_cap_file(char *fname, capture_file *cf) {
|
|||
cf->fh = wtap_file(cf->wth);
|
||||
cf->cd_t = wtap_file_type(cf->wth);
|
||||
cf->snap = wtap_snapshot_length(cf->wth);
|
||||
cf->lnk_t = wtap_encapsulation(cf->wth);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
|
@ -325,14 +323,12 @@ pcap_dispatch_cb(u_char *user, const struct pcap_pkthdr *phdr,
|
|||
fdata->cap_len = phdr->caplen;
|
||||
#ifdef WITH_WIRETAP
|
||||
fdata->file_off = offset;
|
||||
fdata->lnk_t = phdr->pkt_encap;
|
||||
#else
|
||||
fdata->file_off = ftell(cf->fh) - phdr->caplen;
|
||||
#endif
|
||||
fdata->abs_secs = phdr->ts.tv_sec;
|
||||
fdata->abs_usecs = phdr->ts.tv_usec;
|
||||
#ifdef WITH_WIRETAP
|
||||
fdata->lnk_t = phdr->pkt_encap;
|
||||
#endif
|
||||
|
||||
/* If we don't have the time stamp of the first packet, it's because this
|
||||
is the first packet. Save the time stamp of this packet as the time
|
||||
|
|
4
file.h
4
file.h
|
@ -1,7 +1,7 @@
|
|||
/* file.h
|
||||
* Definitions for file structures and routines
|
||||
*
|
||||
* $Id: file.h,v 1.8 1999/01/02 06:10:53 gram Exp $
|
||||
* $Id: file.h,v 1.9 1999/01/07 16:15:35 gram Exp $
|
||||
*
|
||||
* Ethereal - Network traffic analyzer
|
||||
* By Gerald Combs <gerald@zing.org>
|
||||
|
@ -64,7 +64,9 @@ typedef struct _capture_file {
|
|||
int swap; /* Swap data bytes? */
|
||||
guint16 cd_t; /* Capture data type */
|
||||
guint32 vers; /* Version. For tcpdump minor is appended to major */
|
||||
#ifndef WITH_WIRETAP
|
||||
guint32 lnk_t; /* Network link type */
|
||||
#endif
|
||||
guint32 count; /* Packet count */
|
||||
guint32 drops; /* Dropped packets */
|
||||
guint32 esec; /* Elapsed seconds */
|
||||
|
|
14
packet.c
14
packet.c
|
@ -1,7 +1,7 @@
|
|||
/* packet.c
|
||||
* Routines for packet disassembly
|
||||
*
|
||||
* $Id: packet.c,v 1.17 1999/01/05 07:33:38 guy Exp $
|
||||
* $Id: packet.c,v 1.18 1999/01/07 16:15:35 gram Exp $
|
||||
*
|
||||
* Ethereal - Network traffic analyzer
|
||||
* By Gerald Combs <gerald@zing.org>
|
||||
|
@ -310,9 +310,6 @@ dissect_packet(const u_char *pd, frame_data *fd, GtkTree *tree)
|
|||
GtkWidget *fh_tree, *ti;
|
||||
struct tm *tmp;
|
||||
time_t then;
|
||||
#ifdef WITH_WIRETAP
|
||||
guint32 lnk_t;
|
||||
#endif
|
||||
|
||||
/* Put in frame header information. */
|
||||
if (check_col(fd, COL_ABS_TIME)) {
|
||||
|
@ -357,14 +354,7 @@ dissect_packet(const u_char *pd, frame_data *fd, GtkTree *tree)
|
|||
}
|
||||
|
||||
#ifdef WITH_WIRETAP
|
||||
if (cf.lnk_t == WTAP_ENCAP_PER_PACKET) {
|
||||
lnk_t = fd->lnk_t;
|
||||
}
|
||||
else {
|
||||
lnk_t = cf.lnk_t;
|
||||
}
|
||||
|
||||
switch (lnk_t) {
|
||||
switch (fd->lnk_t) {
|
||||
case WTAP_ENCAP_ETHERNET :
|
||||
dissect_eth(pd, fd, tree);
|
||||
break;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* iptrace.c
|
||||
*
|
||||
* $Id: iptrace.c,v 1.1 1999/01/03 04:30:13 gram Exp $
|
||||
* $Id: iptrace.c,v 1.2 1999/01/07 16:15:35 gram Exp $
|
||||
*
|
||||
* Wiretap Library
|
||||
* Copyright (c) 1998 by Gilbert Ramirez <gram@verdict.uthscsa.edu>
|
||||
|
@ -41,7 +41,6 @@ int iptrace_open(wtap *wth)
|
|||
if (strcmp(name, "iptrace 2.0") != 0) {
|
||||
return WTAP_FILE_UNKNOWN;
|
||||
}
|
||||
wth->encapsulation = WTAP_ENCAP_PER_PACKET;
|
||||
wth->subtype_read = iptrace_read;
|
||||
|
||||
return WTAP_FILE_IPTRACE;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* lanalyzer.c
|
||||
*
|
||||
* $Id: lanalyzer.c,v 1.6 1998/12/13 05:38:13 gram Exp $
|
||||
* $Id: lanalyzer.c,v 1.7 1999/01/07 16:15:35 gram Exp $
|
||||
*
|
||||
* Wiretap Library
|
||||
* Copyright (c) 1998 by Gilbert Ramirez <gram@verdict.uthscsa.edu>
|
||||
|
@ -214,6 +214,7 @@ int lanalyzer_read(wtap *wth)
|
|||
|
||||
wth->phdr.len = true_size - 4;
|
||||
wth->phdr.caplen = packet_size;
|
||||
wth->phdr.pkt_encap = wth->encapsulation;
|
||||
|
||||
return data_offset;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* libpcap.c
|
||||
*
|
||||
* $Id: libpcap.c,v 1.2 1998/12/17 06:39:10 gram Exp $
|
||||
* $Id: libpcap.c,v 1.3 1999/01/07 16:15:36 gram Exp $
|
||||
*
|
||||
* Wiretap Library
|
||||
* Copyright (c) 1998 by Gilbert Ramirez <gram@verdict.uthscsa.edu>
|
||||
|
@ -207,6 +207,7 @@ int libpcap_read(wtap *wth)
|
|||
wth->phdr.ts.tv_usec = hdr.ts_usec;
|
||||
wth->phdr.caplen = packet_size;
|
||||
wth->phdr.len = hdr.orig_len;
|
||||
wth->phdr.pkt_encap = wth->encapsulation;
|
||||
|
||||
return data_offset;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* ngsniffer.c
|
||||
*
|
||||
* $Id: ngsniffer.c,v 1.10 1998/12/17 06:39:12 gram Exp $
|
||||
* $Id: ngsniffer.c,v 1.11 1999/01/07 16:15:36 gram Exp $
|
||||
*
|
||||
* Wiretap Library
|
||||
* Copyright (c) 1998 by Gilbert Ramirez <gram@verdict.uthscsa.edu>
|
||||
|
@ -746,5 +746,6 @@ found:
|
|||
wth->phdr.ts.tv_sec = (long)t;
|
||||
wth->phdr.ts.tv_usec = (unsigned long)((t-(double)(wth->phdr.ts.tv_sec))
|
||||
*1.0e6);
|
||||
wth->phdr.pkt_encap = wth->encapsulation;
|
||||
return data_offset;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* snoop.c
|
||||
*
|
||||
* $Id: snoop.c,v 1.1 1998/11/15 05:29:14 guy Exp $
|
||||
* $Id: snoop.c,v 1.2 1999/01/07 16:15:36 gram Exp $
|
||||
*
|
||||
* Wiretap Library
|
||||
* Copyright (c) 1998 by Gilbert Ramirez <gram@verdict.uthscsa.edu>
|
||||
|
@ -145,6 +145,7 @@ int snoop_read(wtap *wth)
|
|||
wth->phdr.ts.tv_usec = ntohl(hdr.ts_usec);
|
||||
wth->phdr.caplen = packet_size;
|
||||
wth->phdr.len = ntohl(hdr.orig_len);
|
||||
wth->phdr.pkt_encap = wth->encapsulation;
|
||||
|
||||
/* Skip over the padding. */
|
||||
fseek(wth->fh, ntohl(hdr.rec_len) - (sizeof hdr + packet_size),
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* wtap.c
|
||||
*
|
||||
* $Id: wtap.c,v 1.3 1998/11/15 05:29:16 guy Exp $
|
||||
* $Id: wtap.c,v 1.4 1999/01/07 16:15:36 gram Exp $
|
||||
*
|
||||
* Wiretap Library
|
||||
* Copyright (c) 1998 by Gilbert Ramirez <gram@verdict.uthscsa.edu>
|
||||
|
@ -33,11 +33,6 @@ int wtap_file_type(wtap *wth)
|
|||
return wth->file_type;
|
||||
}
|
||||
|
||||
int wtap_encapsulation(wtap *wth)
|
||||
{
|
||||
return wth->encapsulation;
|
||||
}
|
||||
|
||||
|
||||
int wtap_snapshot_length(wtap *wth)
|
||||
{
|
||||
|
@ -46,7 +41,27 @@ int wtap_snapshot_length(wtap *wth)
|
|||
|
||||
void wtap_close(wtap *wth)
|
||||
{
|
||||
/* XXX - free up memory? */
|
||||
/* free up memory. If any capture structure ever allocates
|
||||
* its own memory, it would be better to make a *close() function
|
||||
* for each filetype, like pcap_close(0, lanalyzer_close(), etc.
|
||||
* But for now this will work. */
|
||||
switch(wth->file_type) {
|
||||
case WTAP_FILE_PCAP:
|
||||
free(wth->capture.pcap);
|
||||
break;
|
||||
|
||||
case WTAP_FILE_LANALYZER:
|
||||
free(wth->capture.lanalyzer);
|
||||
break;
|
||||
|
||||
case WTAP_FILE_NGSNIFFER:
|
||||
free(wth->capture.ngsniffer);
|
||||
break;
|
||||
|
||||
default:
|
||||
/* nothing */
|
||||
}
|
||||
|
||||
fclose(wth->fh);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* wtap.h
|
||||
*
|
||||
* $Id: wtap.h,v 1.9 1999/01/02 06:10:55 gram Exp $
|
||||
* $Id: wtap.h,v 1.10 1999/01/07 16:15:37 gram Exp $
|
||||
*
|
||||
* Wiretap Library
|
||||
* Copyright (c) 1998 by Gilbert Ramirez <gram@verdict.uthscsa.edu>
|
||||
|
@ -32,7 +32,6 @@
|
|||
#define WTAP_ENCAP_RAW_IP 6
|
||||
#define WTAP_ENCAP_ARCNET 7
|
||||
#define WTAP_ENCAP_ATM_RFC1483 8
|
||||
#define WTAP_ENCAP_PER_PACKET 9
|
||||
|
||||
/* File types that can be read by wiretap */
|
||||
#define WTAP_FILE_UNKNOWN 0
|
||||
|
@ -109,7 +108,6 @@ void wtap_loop(wtap *wth, int, wtap_handler, u_char*);
|
|||
FILE* wtap_file(wtap *wth);
|
||||
int wtap_snapshot_length(wtap *wth); /* per file */
|
||||
int wtap_file_type(wtap *wth);
|
||||
int wtap_encapsulation(wtap *wth); /* per file */
|
||||
void wtap_close(wtap *wth);
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue