X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/446c5a2e54426479d30da3f27aa222f3ba6dd0a0..5a79e16fadb052b22d5a1b9a5d4f0f7e05ee55b0:/tcpdump.c diff --git a/tcpdump.c b/tcpdump.c index 326a8d64..99159019 100644 --- a/tcpdump.c +++ b/tcpdump.c @@ -24,7 +24,7 @@ static const char copyright[] = "@(#) Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997\n\ The Regents of the University of California. All rights reserved.\n"; static const char rcsid[] = - "@(#) $Header: /tcpdump/master/tcpdump/tcpdump.c,v 1.146 2000-04-27 10:41:27 itojun Exp $ (LBL)"; + "@(#) $Header: /tcpdump/master/tcpdump/tcpdump.c,v 1.150 2000-07-25 05:28:12 guy Exp $ (LBL)"; #endif /* @@ -74,6 +74,7 @@ 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; /* Print undecoded NFS handles */ int vflag; /* verbose */ int xflag; /* print packet in hex */ int Xflag; /* print packet in ascii as well as hex */ @@ -87,12 +88,9 @@ char *program_name; int32_t thiszone; /* seconds offset from gmt to local time */ -/* Externs */ -extern void bpf_dump(struct bpf_program *, int); - /* Forwards */ -RETSIGTYPE cleanup(int); -extern __dead void usage(void) __attribute__((volatile)); +static RETSIGTYPE cleanup(int); +static void usage(void) __attribute__((noreturn)); /* Length of saved portion of packet. */ int snaplen = DEFAULT_SNAPLEN; @@ -104,7 +102,7 @@ struct printer { static struct printer printers[] = { { ether_if_print, DLT_EN10MB }, - { ether_if_print, DLT_IEEE802 }, + { token_if_print, DLT_IEEE802 }, #ifdef DLT_LANE8023 { lane_if_print, DLT_LANE8023 }, #endif @@ -175,7 +173,7 @@ main(int argc, char **argv) opterr = 0; while ( - (op = getopt(argc, argv, "ac:deE:fF:i:lm:nNOpqr:Rs:StT:vw:xXY")) != EOF) + (op = getopt(argc, argv, "ac:deE:fF:i:lm:nNOpqr:Rs:StT:uvw:xXY")) != -1) switch (op) { case 'a': @@ -302,6 +300,10 @@ main(int argc, char **argv) error("unknown packet type `%s'", optarg); break; + case 'u': + ++uflag; + break; + case 'v': ++vflag; break; @@ -424,7 +426,7 @@ main(int argc, char **argv) } /* make a clean exit on interrupts */ -RETSIGTYPE +static RETSIGTYPE cleanup(int signo) { struct pcap_stat stat; @@ -481,7 +483,7 @@ default_print(register const u_char *bp, register u_int length) default_print_unaligned(bp, length); } -__dead void +static void usage(void) { extern char version[]; @@ -490,7 +492,7 @@ usage(void) (void)fprintf(stderr, "%s version %s\n", program_name, version); (void)fprintf(stderr, "libpcap version %s\n", pcap_version); (void)fprintf(stderr, -"Usage: %s [-adeflnNOpqStvxX] [-c count] [ -F file ]\n", program_name); +"Usage: %s [-adeflnNOpqStuvxX] [-c count] [ -F file ]\n", program_name); (void)fprintf(stderr, "\t\t[ -i interface ] [ -r file ] [ -s snaplen ]\n"); (void)fprintf(stderr,