If "-n" is specified along with "-e", print the address family value as
"AF <n>" for DLT_NULL captures.
Print the packet length for DLT_NULL captures when "-e" is specified
(somebody complained on "freebsd-isp" about the lack of any packet
length from tcpdump when capturing traffic on a "tunX" device).
Make sure we always print the packet length on PPP when "-e" is
specified (the person in question also complained that the packet length
disappeared between FreeBSD 2.2.8 and FreeBSD 3.4, which was the result
of a new "print-ppp.c" that didn't print the length).
diff --git a/print-null.c b/print-null.c
index 8e43bb5..a4b4085 100644
--- a/print-null.c
+++ b/print-null.c
@@ -21,7 +21,7 @@
#ifndef lint
static const char rcsid[] =
- "@(#) $Header: /tcpdump/master/tcpdump/print-null.c,v 1.38 2000-10-07 05:53:13 itojun Exp $ (LBL)";
+ "@(#) $Header: /tcpdump/master/tcpdump/print-null.c,v 1.39 2000-12-04 06:47:17 guy Exp $ (LBL)";
#endif
#ifdef HAVE_CONFIG_H
@@ -68,30 +68,31 @@
memcpy((char *)&family, (char *)p, sizeof(family));
- if (nflag) {
- /* XXX just dump the header */
- return;
- }
- switch (family) {
+ if (nflag)
+ printf("AF %d ", family);
+ else {
+ switch (family) {
- case AF_INET:
- printf("ip: ");
- break;
+ case AF_INET:
+ printf("ip ");
+ break;
#ifdef INET6
- case AF_INET6:
- printf("ip6: ");
- break;
+ case AF_INET6:
+ printf("ip6 ");
+ break;
#endif
- case AF_NS:
- printf("ns: ");
- break;
+ case AF_NS:
+ printf("ns ");
+ break;
- default:
- printf("AF %d: ", family);
- break;
+ default:
+ printf("AF %d ", family);
+ break;
+ }
}
+ printf("%d: ", length);
}
void
diff --git a/print-ppp.c b/print-ppp.c
index bd283fe..8ba6710 100644
--- a/print-ppp.c
+++ b/print-ppp.c
@@ -31,7 +31,7 @@
#ifndef lint
static const char rcsid[] =
- "@(#) $Header: /tcpdump/master/tcpdump/print-ppp.c,v 1.56 2000-11-08 09:41:39 itojun Exp $ (LBL)";
+ "@(#) $Header: /tcpdump/master/tcpdump/print-ppp.c,v 1.57 2000-12-04 06:47:18 guy Exp $ (LBL)";
#endif
#ifdef HAVE_CONFIG_H
@@ -988,6 +988,7 @@
ppp_print(register const u_char *p, u_int length)
{
u_int proto;
+ u_int full_length = length;
/*
* Here, we assume that p points to the Address and Control
@@ -1012,7 +1013,7 @@
length -= 2;
}
- printf("%s: ", ppp_protoname(proto));
+ printf("%s %d: ", ppp_protoname(proto), full_length);
handle_ppp(proto, p, length);
return;
@@ -1296,9 +1297,9 @@
printf("] ");
}
}
- if (eflag)
- printf("%d ", length);
}
+ if (eflag)
+ printf("%d ", length);
if (p[SLC_CHL]) {
q = p + SLC_BPFHDRLEN + p[SLC_LLHL];