summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormcr <mcr>2004-03-30 14:42:38 +0000
committermcr <mcr>2004-03-30 14:42:38 +0000
commitd2669e52ae7d1540e7c041e4dfe05176fa9abe8e (patch)
tree75842b4b8770ad8bafbb0cfd5e367818bf017d86
parentf34ad003bcf293a2874d119855729898628f5a1e (diff)
downloadtcpdump-d2669e52ae7d1540e7c041e4dfe05176fa9abe8e.tar.gz
update changes file
-rw-r--r--CHANGES7
-rw-r--r--Makefile.in3
-rw-r--r--VERSION2
-rw-r--r--interface.h62
-rw-r--r--print-ether.c7
-rw-r--r--tcpdump.c82
6 files changed, 88 insertions, 75 deletions
diff --git a/CHANGES b/CHANGES
index 41861ef0..86f87eb0 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,4 +1,9 @@
-$Header: /tcpdump/master/tcpdump/CHANGES,v 1.86 2004-03-29 17:29:41 mcr Exp $
+$Header: /tcpdump/master/tcpdump/CHANGES,v 1.87 2004-03-30 14:42:38 mcr Exp $
+
+Tue. March 30, 2004. mcr@sandelman.ottawa.on.ca. Summary for 3.8.3 release
+
+ No changes from 3.8.2. Version bumped only to maintain consistency
+ with libpcap 0.8.3.
Mon. March 29, 2004. mcr@sandelman.ottawa.on.ca. Summary for 3.8.2 release
diff --git a/Makefile.in b/Makefile.in
index 8fb9f26b..cd557199 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -17,7 +17,7 @@
# WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
-# @(#) $Header: /tcpdump/master/tcpdump/Makefile.in,v 1.282 2004-03-28 20:33:27 fenner Exp $ (LBL)
+# @(#) $Header: /tcpdump/master/tcpdump/Makefile.in,v 1.283 2004-03-30 14:42:39 mcr Exp $ (LBL)
#
# Various configurable paths (remember to edit Makefile.in, not Makefile)
@@ -71,6 +71,7 @@ CSRC = addrtoname.c gmpls.c oui.c gmt2local.c machdep.c parsenfsfh.c \
print-beep.c print-bfd.c print-bgp.c print-bootp.c print-cdp.c \
print-chdlc.c print-cip.c print-cnfp.c print-decnet.c \
print-domain.c print-dvmrp.c print-enc.c print-egp.c \
+ print-eap.c \
print-esp.c print-ether.c print-fddi.c print-fr.c \
print-gre.c print-hsrp.c print-icmp.c print-igmp.c \
print-igrp.c print-ip.c print-ipcomp.c print-ipfc.c \
diff --git a/VERSION b/VERSION
index cc1923a4..f44a4862 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-3.8
+4.0-PRE-CVS
diff --git a/interface.h b/interface.h
index e91c593b..ca3e69b5 100644
--- a/interface.h
+++ b/interface.h
@@ -18,7 +18,7 @@
* WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*
- * @(#) $Header: /tcpdump/master/tcpdump/interface.h,v 1.225 2004-03-23 07:15:36 guy Exp $ (LBL)
+ * @(#) $Header: /tcpdump/master/tcpdump/interface.h,v 1.226 2004-03-30 14:42:40 mcr Exp $ (LBL)
*/
#ifndef tcpdump_interface_h
@@ -61,31 +61,6 @@ extern char *strdup(const char *);
extern char *strsep(char **, const char *);
#endif
-struct tok {
- int v; /* value */
- const char *s; /* string */
-};
-
-extern int aflag; /* translate network and broadcast addresses */
-extern int dflag; /* print filter code */
-extern int eflag; /* print ethernet header */
-extern int fflag; /* don't translate "foreign" IP address */
-extern int nflag; /* leave addresses as numbers */
-extern int Nflag; /* remove domains from printed host names */
-extern int qflag; /* quick (shorter) output */
-extern int Rflag; /* print sequence # field in AH/ESP*/
-extern int sflag; /* use the libsmi to translate OIDs */
-extern int Sflag; /* print raw TCP sequence numbers */
-extern int tflag; /* print packet arrival time */
-extern int uflag; /* Print undecoded NFS handles */
-extern int vflag; /* verbose */
-extern int xflag; /* print packet in hex */
-extern int Xflag; /* print packet in hex/ascii */
-extern int Aflag; /* print packet only in ascii observing TAB, LF, CR and SPACE as graphical chars */
-extern char *espsecret;
-extern char *tcpmd5secret;
-
-extern int packettype; /* as specified by -T */
#define PT_VAT 1 /* Visual Audio Tool */
#define PT_WB 2 /* distributed White Board */
#define PT_RPC 3 /* Remote Procedure Call */
@@ -162,9 +137,7 @@ extern void relts_print(int);
extern int fn_print(const u_char *, const u_char *);
extern int fn_printn(const u_char *, u_int, const u_char *);
-extern const char *tok2str(const struct tok *, const char *, int);
extern int mask2plen(u_int32_t);
-extern char *bittok2str(const struct tok *, const char *, int);
extern const char *tok2strary_internal(const char **, int, const char *, int);
#define tok2strary(a,f,i) tok2strary_internal(a, sizeof(a)/sizeof(a[0]),f,i)
@@ -329,4 +302,37 @@ extern u_int16_t in_cksum_shouldbe(u_int16_t, u_int16_t);
struct bpf_program;
extern void bpf_dump(struct bpf_program *, int);
+
#endif
+
+#include "netdissect.h"
+
+/* forward compatibility */
+
+netdissect_options *gndo;
+
+#define dflag gndo->ndo_dflag
+#define eflag gndo->ndo_eflag
+#define fflag gndo->ndo_fflag
+#define nflag gndo->ndo_nflag
+#define Nflag gndo->ndo_Nflag
+#define Oflag gndo->ndo_Oflag
+#define pflag gndo->ndo_pflag
+#define qflag gndo->ndo_qflag
+#define Rflag gndo->ndo_Rflag
+#define sflag gndo->ndo_sflag
+#define Sflag gndo->ndo_Sflag
+#define tflag gndo->ndo_tflag
+#define Uflag gndo->ndo_Uflag
+#define uflag gndo->ndo_uflag
+#define vflag gndo->ndo_vflag
+#define xflag gndo->ndo_xflag
+#define Xflag gndo->ndo_Xflag
+#define Cflag gndo->ndo_Cflag
+#define Aflag gndo->ndo_Aflag
+#define packettype gndo->ndo_packettype
+#define espsecret gndo->ndo_espsecret
+#define tcpmd5secret gndo->ndo_tcpmd5secret
+#define Wflag gndo->ndo_Wflag
+#define WflagChars gndo->ndo_WflagChars
+#define Cflag_count gndo->ndo_Cflag_count
diff --git a/print-ether.c b/print-ether.c
index cbfefce0..6474f059 100644
--- a/print-ether.c
+++ b/print-ether.c
@@ -20,7 +20,7 @@
*/
#ifndef lint
static const char rcsid[] _U_ =
- "@(#) $Header: /tcpdump/master/tcpdump/print-ether.c,v 1.89 2004-03-17 23:24:36 guy Exp $ (LBL)";
+ "@(#) $Header: /tcpdump/master/tcpdump/print-ether.c,v 1.90 2004-03-30 14:42:40 mcr Exp $ (LBL)";
#endif
#ifdef HAVE_CONFIG_H
@@ -69,6 +69,7 @@ const struct tok ethertype_values[] = {
{ ETHERTYPE_PPP, "PPP" },
{ ETHERTYPE_PPPOED, "PPPoE D" },
{ ETHERTYPE_PPPOES, "PPPoE S" },
+ { ETHERTYPE_EAPOL, "EAPOL" },
{ ETHERTYPE_JUMBO, "Jumbo" },
{ ETHERTYPE_LOOPBACK, "Loopback" },
{ ETHERTYPE_ISO, "OSI" },
@@ -284,6 +285,10 @@ ether_encap_print(u_short ether_type, const u_char *p,
pppoe_print(p, length);
return (1);
+ case ETHERTYPE_EAPOL:
+ eap_print(gndo, p, length);
+ return (1);
+
case ETHERTYPE_PPP:
if (length) {
printf(": ");
diff --git a/tcpdump.c b/tcpdump.c
index 2e1b533d..2fe89cd4 100644
--- a/tcpdump.c
+++ b/tcpdump.c
@@ -30,7 +30,7 @@ static const char copyright[] _U_ =
"@(#) Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 2000\n\
The Regents of the University of California. All rights reserved.\n";
static const char rcsid[] _U_ =
- "@(#) $Header: /tcpdump/master/tcpdump/tcpdump.c,v 1.238 2004-03-23 18:57:33 fenner Exp $ (LBL)";
+ "@(#) $Header: /tcpdump/master/tcpdump/tcpdump.c,v 1.239 2004-03-30 14:42:40 mcr Exp $ (LBL)";
#endif
/*
@@ -70,6 +70,7 @@ extern int SIZE_BUF;
#include <grp.h>
#endif /* WIN32 */
+#include "netdissect.h"
#include "interface.h"
#include "addrtoname.h"
#include "machdep.h"
@@ -77,30 +78,8 @@ extern int SIZE_BUF;
#include "gmt2local.h"
#include "pcap-missing.h"
-int dflag; /* print filter code */
-int eflag; /* print ethernet header */
-int fflag; /* don't translate "foreign" IP address */
-static int Lflag; /* list available data link types and exit */
-int nflag; /* leave addresses as numbers */
-int Nflag; /* remove domains from printed host names */
-static int Oflag = 1; /* run filter code optimizer */
-static int pflag; /* don't go promiscuous */
-int qflag; /* quick (shorter) output */
-int Rflag = 1; /* print sequence # field in AH/ESP*/
-int sflag = 0; /* use the libsmi to translate OIDs */
-int Sflag; /* print raw TCP sequence numbers */
-int tflag = 1; /* print packet arrival time */
-int Uflag = 0; /* "unbuffered" output of dump files */
-int uflag = 0; /* Print undecoded NFS handles */
-int vflag; /* verbose */
-int xflag; /* print packet in hex */
-int Xflag; /* print packet in ascii as well as hex */
-static off_t Cflag = 0; /* rotate dump files after this many bytes */
-int Aflag = 0; /* print packet only in ascii observing LF, CR, TAB, SPACE */
-static int dlt = -1; /* if != -1, ask libpcap for the DLT it names */
-static int Cflag_count = 0; /* Keep track of which file number we're writing */
-static int Wflag = 0; /* recycle output files after this number of files */
-static int WflagChars = 0;
+netdissect_options Gndo;
+netdissect_options *gndo = &Gndo;
/*
* Define the maximum number of files for the -C flag, and how many
@@ -110,12 +89,7 @@ static int WflagChars = 0;
#define MAX_CFLAG 1000000
#define MAX_CFLAG_CHARS 6
-const char *dlt_name = NULL;
-
-char *espsecret = NULL; /* ESP secret key */
-char *tcpmd5secret = NULL; /* TCP-MD5 secret key */
-
-int packettype;
+int Lflag; /* list available data link types and exit */
static int infodelay;
static int infoprint;
@@ -397,6 +371,20 @@ MakeFilename(char *buffer, char *orig_name, int cnt, int max_chars)
sprintf(buffer, "%s%0*d", orig_name, max_chars, cnt);
}
+static int tcpdump_printf(netdissect_options *ndo _U_,
+ const char *fmt, ...)
+{
+
+ va_list args;
+ int ret;
+
+ va_start(args, fmt);
+ ret=vfprintf(stdout, fmt, args);
+ va_end(args);
+
+ return ret;
+};
+
int
main(int argc, char **argv)
{
@@ -425,6 +413,12 @@ main(int argc, char **argv)
if(wsockinit() != 0) return 1;
#endif /* WIN32 */
+ gndo->ndo_Oflag=1;
+ gndo->ndo_Rflag=1;
+ gndo->ndo_tflag=1;
+ gndo->ndo_dlt=-1;
+ gndo->ndo_printf=tcpdump_printf;
+
cnt = -1;
device = NULL;
infile = NULL;
@@ -703,10 +697,11 @@ main(int argc, char **argv)
break;
case 'y':
- dlt_name = optarg;
- dlt = pcap_datalink_name_to_val(dlt_name);
- if (dlt < 0)
- error("invalid data link type %s", dlt_name);
+ gndo->ndo_dltname = optarg;
+ gndo->ndo_dlt =
+ pcap_datalink_name_to_val(gndo->ndo_dltname);
+ if (gndo->ndo_dlt < 0)
+ error("invalid data link type %s", gndo->ndo_dltname);
break;
#if defined(HAVE_PCAP_DEBUG) || defined(HAVE_YYDEBUG)
@@ -836,9 +831,9 @@ main(int argc, char **argv)
#endif /* WIN32 */
if (Lflag)
show_dlts_and_exit(pd);
- if (dlt >= 0) {
+ if (gndo->ndo_dlt >= 0) {
#ifdef HAVE_PCAP_SET_DATALINK
- if (pcap_set_datalink(pd, dlt) < 0)
+ if (pcap_set_datalink(pd, gndo->ndo_dlt) < 0)
error("%s", pcap_geterr(pd));
#else
/*
@@ -846,13 +841,13 @@ main(int argc, char **argv)
* data link type, so we only let them
* set it to what it already is.
*/
- if (dlt != pcap_datalink(pd)) {
+ if (gndo->ndo_dlt != pcap_datalink(pd)) {
error("%s is not one of the DLTs supported by this device\n",
- dlt_name);
+ gndo->ndo_dltname);
}
#endif
(void)fprintf(stderr, "%s: data link type %s\n",
- program_name, dlt_name);
+ program_name, gndo->ndo_dltname);
(void)fflush(stderr);
}
i = pcap_snapshot(pd);
@@ -917,9 +912,10 @@ main(int argc, char **argv)
type = pcap_datalink(pd);
printinfo.printer = lookup_printer(type);
if (printinfo.printer == NULL) {
- dlt_name = pcap_datalink_val_to_name(type);
- if (dlt_name != NULL)
- error("unsupported data link type %s", dlt_name);
+ gndo->ndo_dltname = pcap_datalink_val_to_name(type);
+ if (gndo->ndo_dltname != NULL)
+ error("unsupported data link type %s",
+ gndo->ndo_dltname);
else
error("unsupported data link type %d", type);
}