summaryrefslogtreecommitdiffstats
path: root/contrib/tcpdump
diff options
context:
space:
mode:
authorfenner <fenner@FreeBSD.org>1998-09-15 19:46:59 +0000
committerfenner <fenner@FreeBSD.org>1998-09-15 19:46:59 +0000
commit03014afd0377fb8957d9c87572c96a6096b14d45 (patch)
tree06d0bbbc70fe36db13ceefd086607351b3abea15 /contrib/tcpdump
parent577b5b88b39bedc51620403e37d7e98cceb75351 (diff)
downloadFreeBSD-src-03014afd0377fb8957d9c87572c96a6096b14d45.zip
FreeBSD-src-03014afd0377fb8957d9c87572c96a6096b14d45.tar.gz
Merge tcpdump 3.4
PR: bin/7877
Diffstat (limited to 'contrib/tcpdump')
-rw-r--r--contrib/tcpdump/addrtoname.c34
-rw-r--r--contrib/tcpdump/nfsfh.h4
-rw-r--r--contrib/tcpdump/parsenfsfh.c9
-rw-r--r--contrib/tcpdump/print-arp.c7
-rw-r--r--contrib/tcpdump/print-atalk.c11
-rw-r--r--contrib/tcpdump/print-atm.c6
-rw-r--r--contrib/tcpdump/print-bootp.c9
-rw-r--r--contrib/tcpdump/print-domain.c20
-rw-r--r--contrib/tcpdump/print-ether.c4
-rw-r--r--contrib/tcpdump/print-fddi.c7
-rw-r--r--contrib/tcpdump/print-ip.c16
-rw-r--r--contrib/tcpdump/print-isoclns.c7
-rw-r--r--contrib/tcpdump/print-llc.c5
-rw-r--r--contrib/tcpdump/print-nfs.c14
-rw-r--r--contrib/tcpdump/print-ntp.c6
-rw-r--r--contrib/tcpdump/print-null.c14
-rw-r--r--contrib/tcpdump/print-ppp.c89
-rw-r--r--contrib/tcpdump/print-sl.c55
-rw-r--r--contrib/tcpdump/print-sunrpc.c4
-rw-r--r--contrib/tcpdump/print-udp.c11
-rw-r--r--contrib/tcpdump/tcpdump.113
21 files changed, 255 insertions, 90 deletions
diff --git a/contrib/tcpdump/addrtoname.c b/contrib/tcpdump/addrtoname.c
index e6b3e41..4067f96 100644
--- a/contrib/tcpdump/addrtoname.c
+++ b/contrib/tcpdump/addrtoname.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1990, 1991, 1992, 1993, 1994, 1995, 1996
+ * Copyright (c) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -23,7 +23,7 @@
*/
#ifndef lint
static const char rcsid[] =
- "@(#) $Header: addrtoname.c,v 1.54 96/12/05 22:10:19 leres Exp $ (LBL)";
+ "@(#) $Header: addrtoname.c,v 1.61 97/06/15 13:20:18 leres Exp $ (LBL)";
#endif
#include <sys/types.h>
@@ -45,6 +45,12 @@ struct rtentry;
#include <netdb.h>
#include <pcap.h>
#include <pcap-namedb.h>
+#ifdef HAVE_MALLOC_H
+#include <malloc.h>
+#endif
+#ifdef HAVE_MEMORY_H
+#include <memory.h>
+#endif
#include <signal.h>
#include <stdio.h>
#include <string.h>
@@ -54,6 +60,8 @@ struct rtentry;
#include "interface.h"
#include "addrtoname.h"
#include "llc.h"
+#include "savestr.h"
+#include "setsignal.h"
/* Forwards */
static RETSIGTYPE nohostname(int);
@@ -208,16 +216,18 @@ getname(const u_char *ap)
/*
* Only print names when:
* (1) -n was not given.
- * (2) Address is foreign and -f was given. If -f was not
- * present, f_netmask and f_local are 0 and the second
- * test will succeed.
- * (3) The host portion is not 0 (i.e., a network address).
- * (4) The host portion is not broadcast.
+ * (2) Address is foreign and -f was given. (If -f was not
+ * give, f_netmask and f_local are 0 and the test
+ * evaluates to true)
+ * (3) -a was given or the host portion is not all ones
+ * nor all zeros (i.e. not a network or broadcast address)
*/
- if (!nflag && (addr & f_netmask) == f_localnet
- && (addr &~ netmask) != 0 && (addr | netmask) != 0xffffffff) {
+ if (!nflag &&
+ (addr & f_netmask) == f_localnet &&
+ (aflag ||
+ !((addr & ~netmask) == 0 || (addr | netmask) == 0xffffffff))) {
if (!setjmp(getname_env)) {
- (void)signal(SIGALRM, nohostname);
+ (void)setsignal(SIGALRM, nohostname);
(void)alarm(20);
hp = gethostbyaddr((char *)&addr, 4, AF_INET);
(void)alarm(0);
@@ -307,7 +317,7 @@ lookup_nsap(register const u_char *nsap)
tp->e_nsap = (u_char *)malloc(nlen + 1);
if (tp->e_nsap == NULL)
error("lookup_nsap: malloc");
- memcpy(tp->e_nsap, nsap, nlen + 1);
+ memcpy((char *)tp->e_nsap, (char *)nsap, nlen + 1);
tp->e_nxt = (struct enamemem *)calloc(1, sizeof(*tp));
if (tp->e_nxt == NULL)
error("lookup_nsap: calloc");
@@ -697,7 +707,7 @@ init_llcsaparray(void)
* of the local network. mask is its subnet mask.
*/
void
-init_addrtoname(int fflag, u_int32_t localnet, u_int32_t mask)
+init_addrtoname(u_int32_t localnet, u_int32_t mask)
{
netmask = mask;
if (fflag) {
diff --git a/contrib/tcpdump/nfsfh.h b/contrib/tcpdump/nfsfh.h
index d8e9c0d..b295bc4 100644
--- a/contrib/tcpdump/nfsfh.h
+++ b/contrib/tcpdump/nfsfh.h
@@ -1,5 +1,5 @@
/*
- * $Header: nfsfh.h,v 1.5 96/08/20 14:33:23 leres Exp $
+ * $Header: nfsfh.h,v 1.6 96/12/16 03:40:31 leres Exp $
*
* nfsfh.h - NFS file handle definitions (for portable use)
*
@@ -29,6 +29,6 @@ typedef struct {
} my_fsid;
#define fsid_eq(a,b) ((a.fsid_code == b.fsid_code) &&\
- dev_eq(a.fsid_dev, b.fsid_dev))
+ dev_eq(a.Fsid_dev, b.Fsid_dev))
extern void Parse_fh(caddr_t *, int, my_fsid *, ino_t *, char **, char **, int);
diff --git a/contrib/tcpdump/parsenfsfh.c b/contrib/tcpdump/parsenfsfh.c
index bd5e690..8a9d78a 100644
--- a/contrib/tcpdump/parsenfsfh.c
+++ b/contrib/tcpdump/parsenfsfh.c
@@ -9,14 +9,16 @@
#ifndef lint
static const char rcsid[] =
- "@(#) $Header: parsenfsfh.c,v 1.12 96/12/10 23:25:50 leres Exp $ (LBL)";
+ "@(#) $Header: parsenfsfh.c,v 1.14 97/06/15 13:20:27 leres Exp $ (LBL)";
#endif
#include <sys/types.h>
#include <sys/time.h>
#include <ctype.h>
+#ifdef HAVE_MEMORY_H
#include <memory.h>
+#endif
#include <stdio.h>
#include <string.h>
@@ -313,13 +315,14 @@ int ourself; /* true if file handle was generated on this host */
if (sizeof(*fsidp) >= 14) {
if (sizeof(*fsidp) > 14)
memset((char *)fsidp, 0, sizeof(*fsidp));
- memcpy((char *)fsidp, fh, 14); /* just use the whole thing */
+ /* just use the whole thing */
+ memcpy((char *)fsidp, (char *)fh, 14);
}
else {
u_int32_t tempa[4]; /* at least 16 bytes, maybe more */
memset((char *)tempa, 0, sizeof(tempa));
- memcpy((char *)tempa, fh, 14); /* ensure alignment */
+ memcpy((char *)tempa, (char *)fh, 14); /* ensure alignment */
fsidp->Fsid_dev.Minor = tempa[0] + (tempa[1]<<1);
fsidp->Fsid_dev.Major = tempa[2] + (tempa[3]<<1);
fsidp->fsid_code = 0;
diff --git a/contrib/tcpdump/print-arp.c b/contrib/tcpdump/print-arp.c
index c9533c7..c7578fe 100644
--- a/contrib/tcpdump/print-arp.c
+++ b/contrib/tcpdump/print-arp.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996
+ * Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -21,7 +21,7 @@
#ifndef lint
static const char rcsid[] =
- "@(#) $Header: print-arp.c,v 1.41 96/10/27 14:54:50 leres Exp $ (LBL)";
+ "@(#) $Header: print-arp.c,v 1.43 97/06/15 13:20:27 leres Exp $ (LBL)";
#endif
#include <sys/param.h>
@@ -38,6 +38,9 @@ struct rtentry;
#include <netinet/in.h>
#include <netinet/if_ether.h>
+#ifdef HAVE_MEMORY_H
+#include <memory.h>
+#endif
#include <stdio.h>
#include <string.h>
diff --git a/contrib/tcpdump/print-atalk.c b/contrib/tcpdump/print-atalk.c
index c8e1c10..ba369d9 100644
--- a/contrib/tcpdump/print-atalk.c
+++ b/contrib/tcpdump/print-atalk.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996
+ * Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -23,7 +23,7 @@
#ifndef lint
static const char rcsid[] =
- "@(#) $Header: print-atalk.c,v 1.45 96/12/10 23:24:07 leres Exp $ (LBL)";
+ "@(#) $Header: print-atalk.c,v 1.48 97/05/28 12:50:58 leres Exp $ (LBL)";
#endif
#include <sys/param.h>
@@ -55,6 +55,7 @@ struct rtentry;
#include "ethertype.h"
#include "extract.h" /* must come after interface.h */
#include "appletalk.h"
+#include "savestr.h"
static struct tok type2str[] = {
{ ddpRTMP, "rtmp" },
@@ -412,11 +413,11 @@ print_cstring(register const char *cp, register const u_char *ep)
length = *cp++;
/* Spec says string can be at most 32 bytes long */
- if (length < 0 || length > 32) {
- (void)printf("[len=%d]", length);
+ if (length > 32) {
+ (void)printf("[len=%u]", length);
return (0);
}
- while (--length >= 0) {
+ while ((int)--length >= 0) {
if (cp >= (char *)ep) {
fputs(tstr, stdout);
return (0);
diff --git a/contrib/tcpdump/print-atm.c b/contrib/tcpdump/print-atm.c
index 2181830..c4629e2 100644
--- a/contrib/tcpdump/print-atm.c
+++ b/contrib/tcpdump/print-atm.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1994, 1995, 1996
+ * Copyright (c) 1994, 1995, 1996, 1997
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -20,7 +20,7 @@
*/
#ifndef lint
static const char rcsid[] =
- "@(#) $Header: print-atm.c,v 1.8 96/09/26 23:36:41 leres Exp $ (LBL)";
+ "@(#) $Header: print-atm.c,v 1.9 97/05/28 12:52:40 leres Exp $ (LBL)";
#endif
#include <sys/param.h>
@@ -48,9 +48,9 @@ struct rtentry;
#include <stdio.h>
#include <pcap.h>
+#include "interface.h"
#include "addrtoname.h"
#include "ethertype.h"
-#include "interface.h"
/*
* This is the top level routine of the printer. 'p' is the points
diff --git a/contrib/tcpdump/print-bootp.c b/contrib/tcpdump/print-bootp.c
index 425c11c..c9eb72b 100644
--- a/contrib/tcpdump/print-bootp.c
+++ b/contrib/tcpdump/print-bootp.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1990, 1991, 1993, 1994, 1995, 1996
+ * Copyright (c) 1990, 1991, 1993, 1994, 1995, 1996, 1997
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -22,7 +22,7 @@
*/
#ifndef lint
static const char rcsid[] =
- "@(#) $Header: print-bootp.c,v 1.43 96/09/26 23:36:42 leres Exp $ (LBL)";
+ "@(#) $Header: print-bootp.c,v 1.46 98/07/18 13:33:58 leres Exp $ (LBL)";
#endif
#include <sys/param.h>
@@ -39,6 +39,9 @@ struct rtentry;
#include <net/ethernet.h>
#include <ctype.h>
+#ifdef HAVE_MEMORY_H
+#include <memory.h>
+#endif
#include <stdio.h>
#include <string.h>
@@ -145,6 +148,7 @@ bootp_print(register const u_char *cp, u_int length,
fputs(tstr + 1, stdout);
return;
}
+ putchar('"');
}
TCHECK2(bp->bp_sname[0], 1); /* check first char only */
if (*bp->bp_file) {
@@ -154,6 +158,7 @@ bootp_print(register const u_char *cp, u_int length,
fputs(tstr + 1, stdout);
return;
}
+ putchar('"');
}
/* Decode the vendor buffer */
diff --git a/contrib/tcpdump/print-domain.c b/contrib/tcpdump/print-domain.c
index 31c7b51..7eb2e0c 100644
--- a/contrib/tcpdump/print-domain.c
+++ b/contrib/tcpdump/print-domain.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996
+ * Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -21,7 +21,7 @@
#ifndef lint
static const char rcsid[] =
- "@(#) $Header: print-domain.c,v 1.37 96/12/10 23:21:06 leres Exp $ (LBL)";
+ "@(#) $Header: print-domain.c,v 1.39 97/06/13 12:56:28 leres Exp $ (LBL)";
#endif
#include <sys/param.h>
@@ -44,8 +44,12 @@ struct rtentry;
#include <netinet/tcp.h>
#include <netinet/tcpip.h>
+#ifdef NOERROR
#undef NOERROR /* Solaris sucks */
+#endif
+#ifdef NOERROR
#undef T_UNSPEC /* SINIX does too */
+#endif
#include <arpa/nameser.h>
#include <stdio.h>
@@ -216,6 +220,18 @@ static struct tok type2str[] = {
{ T_GPOS, "GPOS" },
{ T_AAAA, "AAAA" },
{ T_LOC , "LOC " },
+#ifndef T_UINFO
+#define T_UINFO 100
+#endif
+ { T_UINFO, "UINFO" },
+#ifndef T_UID
+#define T_UID 101
+#endif
+ { T_UID, "UID" },
+#ifndef T_GID
+#define T_GID 102
+#endif
+ { T_GID, "GID" },
{ T_UNSPEC, "UNSPEC" },
{ T_UNSPECA, "UNSPECA" },
{ T_AXFR, "AXFR" },
diff --git a/contrib/tcpdump/print-ether.c b/contrib/tcpdump/print-ether.c
index cabbe2b..dd7bf59 100644
--- a/contrib/tcpdump/print-ether.c
+++ b/contrib/tcpdump/print-ether.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996
+ * Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -20,7 +20,7 @@
*/
#ifndef lint
static const char rcsid[] =
- "@(#) $Header: print-ether.c,v 1.43 96/09/26 23:36:43 leres Exp $ (LBL)";
+ "@(#) $Header: print-ether.c,v 1.44 97/05/26 17:18:13 leres Exp $ (LBL)";
#endif
#include <sys/param.h>
diff --git a/contrib/tcpdump/print-fddi.c b/contrib/tcpdump/print-fddi.c
index 1714735..1f3dde6 100644
--- a/contrib/tcpdump/print-fddi.c
+++ b/contrib/tcpdump/print-fddi.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996
+ * Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -21,7 +21,7 @@
#ifndef lint
static const char rcsid[] =
- "@(#) $Header: print-fddi.c,v 1.33 96/12/10 23:20:49 leres Exp $ (LBL)";
+ "@(#) $Header: print-fddi.c,v 1.36 97/05/26 17:13:35 leres Exp $ (LBL)";
#endif
#ifdef HAVE_FDDI
@@ -45,7 +45,6 @@ struct rtentry;
#include <ctype.h>
#include <netdb.h>
#include <pcap.h>
-#include <signal.h>
#include <stdio.h>
#include <string.h>
@@ -58,7 +57,7 @@ struct rtentry;
/*
* Some FDDI interfaces use bit-swapped addresses.
*/
-#if defined(ultrix) || defined(__alpha)
+#if defined(ultrix) || defined(__alpha) || defined(__bsdi)
int fddi_bitswap = 0;
#else
int fddi_bitswap = 1;
diff --git a/contrib/tcpdump/print-ip.c b/contrib/tcpdump/print-ip.c
index fdad8e2..ebe06a5 100644
--- a/contrib/tcpdump/print-ip.c
+++ b/contrib/tcpdump/print-ip.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996
+ * Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -21,7 +21,7 @@
#ifndef lint
static const char rcsid[] =
- "@(#) $Header: print-ip.c,v 1.62 96/12/10 23:20:31 leres Exp $ (LBL)";
+ "@(#) $Header: print-ip.c,v 1.66 97/05/28 12:51:43 leres Exp $ (LBL)";
#endif
#include <sys/param.h>
@@ -37,6 +37,9 @@ static const char rcsid[] =
#include <netinet/tcp.h>
#include <netinet/tcpip.h>
+#ifdef HAVE_MALLOC_H
+#include <malloc.h>
+#endif
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -445,18 +448,15 @@ ip_print(register const u_char *bp, register u_int length)
igmp_print(cp, len, (const u_char *)ip);
break;
-#ifndef IPPROTO_IPIP
-#define IPPROTO_IPIP 4
-#endif
- case IPPROTO_IPIP:
- /* ip-in-ip encapsulation */
+ case 4:
+ /* DVMRP multicast tunnel (ip-in-ip encapsulation) */
if (vflag)
(void)printf("%s > %s: ",
ipaddr_string(&ip->ip_src),
ipaddr_string(&ip->ip_dst));
ip_print(cp, len);
if (! vflag) {
- printf(" (encap)");
+ printf(" (ipip)");
return;
}
break;
diff --git a/contrib/tcpdump/print-isoclns.c b/contrib/tcpdump/print-isoclns.c
index 376cbba..7af4f8f 100644
--- a/contrib/tcpdump/print-isoclns.c
+++ b/contrib/tcpdump/print-isoclns.c
@@ -23,7 +23,7 @@
#ifndef lint
static const char rcsid[] =
- "@(#) $Header: print-isoclns.c,v 1.14 96/12/10 23:26:56 leres Exp $ (LBL)";
+ "@(#) $Header: print-isoclns.c,v 1.15 96/12/31 21:27:41 leres Exp $ (LBL)";
#endif
#include <sys/types.h>
@@ -283,7 +283,7 @@ esis_print(const u_char *p, u_int length)
printf(" bad pkt!");
else {
printf(" too short for esis header %d:", li);
- while (--length >= 0)
+ while (--length != 0)
printf("%02X", *p++);
}
return;
@@ -663,7 +663,8 @@ osi_cksum(register const u_char *p, register int len, u_char *off)
if ((off[0] == 0) && (off[1] == 0))
return 0;
- while (--len >= 0) {
+ off[0] = off[1] = 0;
+ while ((int)--len >= 0) {
c0 += *p++;
c0 %= 255;
c1 += c0;
diff --git a/contrib/tcpdump/print-llc.c b/contrib/tcpdump/print-llc.c
index b1f17f9..183c357 100644
--- a/contrib/tcpdump/print-llc.c
+++ b/contrib/tcpdump/print-llc.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1992, 1993, 1994, 1995, 1996
+ * Copyright (c) 1992, 1993, 1994, 1995, 1996, 1997
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -24,7 +24,7 @@
#ifndef lint
static const char rcsid[] =
- "@(#) $Header: print-llc.c,v 1.22 96/12/10 23:23:37 leres Exp $";
+ "@(#) $Header: print-llc.c,v 1.24 97/01/01 20:56:48 leres Exp $";
#endif
#include <sys/param.h>
@@ -34,7 +34,6 @@ static const char rcsid[] =
#include <ctype.h>
#include <netdb.h>
-#include <signal.h>
#include <stdio.h>
#include <string.h>
diff --git a/contrib/tcpdump/print-nfs.c b/contrib/tcpdump/print-nfs.c
index fd71a46..bfaf438 100644
--- a/contrib/tcpdump/print-nfs.c
+++ b/contrib/tcpdump/print-nfs.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996
+ * Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -21,7 +21,7 @@
#ifndef lint
static const char rcsid[] =
- "@(#) $Header: print-nfs.c,v 1.63 96/12/10 23:18:07 leres Exp $ (LBL)";
+ "@(#) $Header: print-nfs.c,v 1.65 97/08/17 13:24:22 leres Exp $ (LBL)";
#endif
#include <sys/param.h>
@@ -247,7 +247,7 @@ nfsreply_print(register const u_char *bp, u_int length,
ip = (const struct ip *)bp2;
if (!nflag)
- (void)printf("%s.nfs > %s.%x: reply %s %d",
+ (void)printf("%s.nfs > %s.%u: reply %s %d",
ipaddr_string(&ip->ip_src),
ipaddr_string(&ip->ip_dst),
(u_int32_t)ntohl(rp->rm_xid),
@@ -255,7 +255,7 @@ nfsreply_print(register const u_char *bp, u_int length,
"ok":"ERR",
length);
else
- (void)printf("%s.%x > %s.%x: reply %s %d",
+ (void)printf("%s.%u > %s.%u: reply %s %d",
ipaddr_string(&ip->ip_src),
NFS_PORT,
ipaddr_string(&ip->ip_dst),
@@ -383,13 +383,13 @@ nfsreq_print(register const u_char *bp, u_int length,
rp = (const struct rpc_msg *)bp;
ip = (const struct ip *)bp2;
if (!nflag)
- (void)printf("%s.%x > %s.nfs: %d",
+ (void)printf("%s.%u > %s.nfs: %d",
ipaddr_string(&ip->ip_src),
(u_int32_t)ntohl(rp->rm_xid),
ipaddr_string(&ip->ip_dst),
length);
else
- (void)printf("%s.%x > %s.%x: %d",
+ (void)printf("%s.%u > %s.%u: %d",
ipaddr_string(&ip->ip_src),
(u_int32_t)ntohl(rp->rm_xid),
ipaddr_string(&ip->ip_dst),
@@ -758,7 +758,7 @@ xid_map_find(const struct rpc_msg *rp, const struct ip *ip, u_int32_t *proc,
} while (i != xid_map_hint);
/* search failed */
- return (-1);
+ return (0);
}
/*
diff --git a/contrib/tcpdump/print-ntp.c b/contrib/tcpdump/print-ntp.c
index 926691c..696bb42 100644
--- a/contrib/tcpdump/print-ntp.c
+++ b/contrib/tcpdump/print-ntp.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1990, 1991, 1992, 1993, 1994, 1995, 1996
+ * Copyright (c) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -25,7 +25,7 @@
#ifndef lint
static const char rcsid[] =
- "@(#) $Header: print-ntp.c,v 1.25 96/11/05 13:30:37 leres Exp $ (LBL)";
+ "@(#) $Header: print-ntp.c,v 1.26 97/06/13 12:56:37 leres Exp $ (LBL)";
#endif
#include <sys/param.h>
@@ -47,7 +47,9 @@ struct rtentry;
#include "interface.h"
#include "addrtoname.h"
+#ifdef MODEMASK
#undef MODEMASK /* Solaris sucks */
+#endif
#include "ntp.h"
static void p_sfix(const struct s_fixedpt *);
diff --git a/contrib/tcpdump/print-null.c b/contrib/tcpdump/print-null.c
index cf845d4..f1469ab 100644
--- a/contrib/tcpdump/print-null.c
+++ b/contrib/tcpdump/print-null.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1991, 1993, 1994, 1995, 1996
+ * Copyright (c) 1991, 1993, 1994, 1995, 1996, 1997
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -21,7 +21,7 @@
#ifndef lint
static const char rcsid[] =
- "@(#) $Header: print-null.c,v 1.22 96/12/10 23:18:58 leres Exp $ (LBL)";
+ "@(#) $Header: print-null.c,v 1.24 97/05/28 12:52:47 leres Exp $ (LBL)";
#endif
#include <sys/param.h>
@@ -50,15 +50,19 @@ struct rtentry;
#include <stdio.h>
#include <string.h>
-#include "addrtoname.h"
#include "interface.h"
-
-#define NULL_HDRLEN 4
+#include "addrtoname.h"
#ifndef AF_NS
#define AF_NS 6 /* XEROX NS protocols */
#endif
+/*
+ * The DLT_NULL packet header is 4 bytes long. It contains a network
+ * order 32 bit integer that specifies the family, e.g. AF_INET
+ */
+#define NULL_HDRLEN 4
+
static void
null_print(const u_char *p, const struct ip *ip, u_int length)
{
diff --git a/contrib/tcpdump/print-ppp.c b/contrib/tcpdump/print-ppp.c
index bd5e805..285efe8 100644
--- a/contrib/tcpdump/print-ppp.c
+++ b/contrib/tcpdump/print-ppp.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1990, 1991, 1993, 1994, 1995, 1996
+ * Copyright (c) 1990, 1991, 1993, 1994, 1995, 1996, 1997
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -21,10 +21,9 @@
#ifndef lint
static const char rcsid[] =
- "@(#) $Header: print-ppp.c,v 1.24 96/12/10 23:23:12 leres Exp $ (LBL)";
+ "@(#) $Header: print-ppp.c,v 1.26 97/06/12 14:21:29 leres Exp $ (LBL)";
#endif
-#ifdef PPP
#include <sys/param.h>
#include <sys/time.h>
#include <sys/socket.h>
@@ -44,7 +43,6 @@ struct rtentry;
#include <ctype.h>
#include <netdb.h>
#include <pcap.h>
-#include <signal.h>
#include <stdio.h>
#include <net/ethernet.h>
@@ -53,6 +51,7 @@ struct rtentry;
#include <net/ppp_defs.h>
#include "interface.h"
#include "addrtoname.h"
+#include "ppp.h"
struct protonames {
u_short protocol;
@@ -196,6 +195,7 @@ static int handle_chap(const u_char *p, int length);
static int handle_ipcp(const u_char *p, int length);
static int handle_pap(const u_char *p, int length);
+/* Standard PPP printer */
void
ppp_hdlc_print(const u_char *p, int length)
{
@@ -532,17 +532,80 @@ ppp_if_print(u_char *user, const struct pcap_pkthdr *h,
out:
putchar('\n');
}
-#else
-#include <sys/types.h>
-#include <sys/time.h>
-#include <stdio.h>
+/* proto type to string mapping */
+static struct tok ptype2str[] = {
+ { PPP_VJC, "VJC" },
+ { PPP_VJNC, "VJNC" },
+ { PPP_OSI, "OSI" },
+ { PPP_LCP, "LCP" },
+ { PPP_IPCP, "IPCP" },
+ { 0, NULL }
+};
-#include "interface.h"
+#define PPP_BSDI_HDRLEN 24
+
+/* BSD/OS specific PPP printer */
void
-ppp_if_print(u_char *user, const struct pcap_pkthdr *h, const u_char *p)
+ppp_bsdos_if_print(u_char *user, const struct pcap_pkthdr *h,
+ register const u_char *p)
{
- error("not configured for ppp");
- /* NOTREACHED */
+ register u_int length = h->len;
+ register u_int caplen = h->caplen;
+ register int hdrlength;
+ u_short ptype;
+
+ ts_print(&h->ts);
+
+ if (caplen < PPP_BSDI_HDRLEN) {
+ printf("[|ppp]");
+ goto out;
+ }
+
+ /*
+ * Some printers want to get back at the link level addresses,
+ * and/or check that they're not walking off the end of the packet.
+ * Rather than pass them all the way down, we set these globals.
+ */
+ packetp = p;
+ snapend = p + caplen;
+ hdrlength = 0;
+
+ if (p[0] == PPP_ADDRESS && p[1] == PPP_CONTROL) {
+ if (eflag)
+ printf("%02x %02x ", p[0], p[1]);
+ p += 2;
+ hdrlength = 2;
+ }
+
+ if (eflag)
+ printf("%d ", length);
+ /* Retrieve the protocol type */
+ if (*p & 01) {
+ /* Compressed protocol field */
+ ptype = *p;
+ if (eflag)
+ printf("%02x ", ptype);
+ p++;
+ hdrlength += 1;
+ } else {
+ /* Un-compressed protocol field */
+ ptype = ntohs(*(u_short *)p);
+ if (eflag)
+ printf("%04x ", ptype);
+ p += 2;
+ hdrlength += 2;
+ }
+
+ length -= hdrlength;
+
+ if (ptype == PPP_IP)
+ ip_print(p, length);
+ else
+ printf("%s ", tok2str(ptype2str, "proto-#%d", ptype));
+
+ if (xflag)
+ default_print((const u_char *)p, caplen - hdrlength);
+out:
+ putchar('\n');
}
-#endif
diff --git a/contrib/tcpdump/print-sl.c b/contrib/tcpdump/print-sl.c
index 0c6cd8d..7e52352 100644
--- a/contrib/tcpdump/print-sl.c
+++ b/contrib/tcpdump/print-sl.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1989, 1990, 1991, 1993, 1994, 1995, 1996
+ * Copyright (c) 1989, 1990, 1991, 1993, 1994, 1995, 1996, 1997
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -21,7 +21,7 @@
#ifndef lint
static const char rcsid[] =
- "@(#) $Header: print-sl.c,v 1.41 96/12/10 23:19:42 leres Exp $ (LBL)";
+ "@(#) $Header: print-sl.c,v 1.42 97/06/12 14:21:35 leres Exp $ (LBL)";
#endif
#ifdef HAVE_NET_SLIP_H
@@ -54,7 +54,6 @@ struct rtentry;
#include <ctype.h>
#include <netdb.h>
#include <pcap.h>
-#include <signal.h>
#include <stdio.h>
#include "interface.h"
@@ -75,6 +74,8 @@ static void compressed_sl_print(const u_char *, const struct ip *, u_int, int);
#define CHDR_LEN (SLC_BPFHDR - SLC_BPFHDRLEN)
#endif
+/* XXX needs more hacking to work right */
+
void
sl_if_print(u_char *user, const struct pcap_pkthdr *h, const u_char *p)
{
@@ -111,6 +112,45 @@ sl_if_print(u_char *user, const struct pcap_pkthdr *h, const u_char *p)
putchar('\n');
}
+
+void
+sl_bsdos_if_print(u_char *user, const struct pcap_pkthdr *h, const u_char *p)
+{
+ register u_int caplen = h->caplen;
+ register u_int length = h->len;
+ register const struct ip *ip;
+
+ ts_print(&h->ts);
+
+ if (caplen < SLIP_HDRLEN) {
+ printf("[|slip]");
+ goto out;
+ }
+ /*
+ * Some printers want to get back at the link level addresses,
+ * and/or check that they're not walking off the end of the packet.
+ * Rather than pass them all the way down, we set these globals.
+ */
+ packetp = p;
+ snapend = p + caplen;
+
+ length -= SLIP_HDRLEN;
+
+ ip = (struct ip *)(p + SLIP_HDRLEN);
+
+#ifdef notdef
+ if (eflag)
+ sliplink_print(p, ip, length);
+#endif
+
+ ip_print((u_char *)ip, length);
+
+ if (xflag)
+ default_print((u_char *)ip, caplen - SLIP_HDRLEN);
+ out:
+ putchar('\n');
+}
+
static void
sliplink_print(register const u_char *p, register const struct ip *ip,
register u_int length)
@@ -247,6 +287,7 @@ compressed_sl_print(const u_char *chdr, const struct ip *ip,
#include <stdio.h>
#include "interface.h"
+
void
sl_if_print(u_char *user, const struct pcap_pkthdr *h, const u_char *p)
{
@@ -254,4 +295,12 @@ sl_if_print(u_char *user, const struct pcap_pkthdr *h, const u_char *p)
error("not configured for slip");
/* NOTREACHED */
}
+
+void
+sl_bsdos_if_print(u_char *user, const struct pcap_pkthdr *h, const u_char *p)
+{
+
+ error("not configured for slip");
+ /* NOTREACHED */
+}
#endif
diff --git a/contrib/tcpdump/print-sunrpc.c b/contrib/tcpdump/print-sunrpc.c
index 01c485b..ecc4426 100644
--- a/contrib/tcpdump/print-sunrpc.c
+++ b/contrib/tcpdump/print-sunrpc.c
@@ -21,7 +21,7 @@
#ifndef lint
static const char rcsid[] =
- "@(#) $Header: print-sunrpc.c,v 1.25 96/09/26 23:36:49 leres Exp $ (LBL)";
+ "@(#) $Header: print-sunrpc.c,v 1.26 96/12/31 21:27:43 leres Exp $ (LBL)";
#endif
#include <sys/param.h>
@@ -119,7 +119,7 @@ progstr(prog)
{
register struct rpcent *rp;
static char buf[32];
- static lastprog = 0;
+ static int lastprog = 0;
if (lastprog != 0 && prog == lastprog)
return (buf);
diff --git a/contrib/tcpdump/print-udp.c b/contrib/tcpdump/print-udp.c
index a0914eb..c75446f 100644
--- a/contrib/tcpdump/print-udp.c
+++ b/contrib/tcpdump/print-udp.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996
+ * Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -21,7 +21,7 @@
#ifndef lint
static const char rcsid[] =
- "@(#) $Header: print-udp.c,v 1.58 96/12/10 23:22:07 leres Exp $ (LBL)";
+ "@(#) $Header: print-udp.c,v 1.60 97/07/27 21:58:48 leres Exp $ (LBL)";
#endif
#include <sys/param.h>
@@ -35,9 +35,16 @@ static const char rcsid[] =
#include <netinet/udp.h>
#include <netinet/udp_var.h>
+#ifdef NOERROR
#undef NOERROR /* Solaris sucks */
+#endif
+#ifdef T_UNSPEC
#undef T_UNSPEC /* SINIX does too */
+#endif
#include <arpa/nameser.h>
+#ifdef SEGSIZE
+#undef SEGSIZE
+#endif
#include <arpa/tftp.h>
#include <rpc/rpc.h>
diff --git a/contrib/tcpdump/tcpdump.1 b/contrib/tcpdump/tcpdump.1
index 6b07f45..a7775eb 100644
--- a/contrib/tcpdump/tcpdump.1
+++ b/contrib/tcpdump/tcpdump.1
@@ -1,6 +1,6 @@
-.\" @(#) $Header: tcpdump.1,v 1.65 96/11/29 01:03:01 leres Exp $ (LBL)
+.\" @(#) $Header: tcpdump.1,v 1.67 97/06/30 16:31:50 leres Exp $ (LBL)
.\"
-.\" Copyright (c) 1987, 1988, 1989, 1990, 1991, 1992, 1994, 1995, 1996
+.\" Copyright (c) 1987, 1988, 1989, 1990, 1991, 1992, 1994, 1995, 1996, 1997
.\" The Regents of the University of California. All rights reserved.
.\" All rights reserved.
.\"
@@ -20,14 +20,14 @@
.\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
.\"
-.TH TCPDUMP 1 "29 November 1996"
+.TH TCPDUMP 1 "30 June 1997"
.SH NAME
tcpdump \- dump traffic on a network
.SH SYNOPSIS
.na
.B tcpdump
[
-.B \-deflnNOpqStvx
+.B \-adeflnNOpqStvx
] [
.B \-c
.I count
@@ -72,7 +72,7 @@ that match the boolean \fIexpression\fP.
To run
.I tcpdump
you must have read access to
-.I /dev/net
+.I /dev/nit
or
.IR /dev/bpf* .
.B Under Solaris with dlpi:
@@ -94,6 +94,9 @@ You must have read access to
.IR /dev/bpf* .
.SH OPTIONS
.TP
+.B \-a
+Attempt to convert network and broadcast addresses to names.
+.TP
.B \-c
Exit after receiving \fIcount\fP packets.
.TP
OpenPOWER on IntegriCloud