summaryrefslogtreecommitdiffstats
path: root/contrib/tcpdump/print-ip.c
diff options
context:
space:
mode:
authorfenner <fenner@FreeBSD.org>1997-05-27 02:17:42 +0000
committerfenner <fenner@FreeBSD.org>1997-05-27 02:17:42 +0000
commita45d5a033f69ab70d6de3ead1e8c6fd59f87352b (patch)
treebe1f1538067d8b764f3c8883470f914b73adcec2 /contrib/tcpdump/print-ip.c
parent3ff0e744409afb9167d172e5c627942dd28ad80f (diff)
downloadFreeBSD-src-a45d5a033f69ab70d6de3ead1e8c6fd59f87352b.zip
FreeBSD-src-a45d5a033f69ab70d6de3ead1e8c6fd59f87352b.tar.gz
Merge tcpdump 3.3.
The print_nfs.c changes are pretty extensive; this is partially because LBL did a lot of cleanup and partially because I removed lots of pointless changes away from the LBL style. PR: 3371 mostly-Submitted by: Chris Timmons <skynyrd@opus.cts.cwu.edu>
Diffstat (limited to 'contrib/tcpdump/print-ip.c')
-rw-r--r--contrib/tcpdump/print-ip.c40
1 files changed, 28 insertions, 12 deletions
diff --git a/contrib/tcpdump/print-ip.c b/contrib/tcpdump/print-ip.c
index 2f49352..fdad8e2 100644
--- a/contrib/tcpdump/print-ip.c
+++ b/contrib/tcpdump/print-ip.c
@@ -20,8 +20,8 @@
*/
#ifndef lint
-static char rcsid[] =
- "@(#) $Header: print-ip.c,v 1.56 96/07/23 14:17:24 leres Exp $ (LBL)";
+static const char rcsid[] =
+ "@(#) $Header: print-ip.c,v 1.62 96/12/10 23:20:31 leres Exp $ (LBL)";
#endif
#include <sys/param.h>
@@ -64,17 +64,17 @@ struct tr_query {
u_int tr_src; /* traceroute source */
u_int tr_dst; /* traceroute destination */
u_int tr_raddr; /* traceroute response address */
-#if defined(BYTE_ORDER) && (BYTE_ORDER == LITTLE_ENDIAN)
+#ifdef WORDS_BIGENDIAN
struct {
- u_int qid : 24; /* traceroute query id */
- u_int ttl : 8; /* traceroute response ttl */
+ u_int ttl : 8; /* traceroute response ttl */
+ u_int qid : 24; /* traceroute query id */
} q;
#else
struct {
- u_int ttl : 8; /* traceroute response ttl */
- u_int qid : 24; /* traceroute query id */
+ u_int qid : 24; /* traceroute query id */
+ u_int ttl : 8; /* traceroute response ttl */
} q;
-#endif /* BYTE_ORDER */
+#endif
};
#define tr_rttl q.ttl
@@ -121,7 +121,7 @@ struct tr_resp {
static void print_mtrace(register const u_char *bp, register u_int len)
{
- register struct tr_query* tr = (struct tr_query*)(bp + 8);
+ register struct tr_query *tr = (struct tr_query *)(bp + 8);
printf("mtrace %d: %s to %s reply-to %s", tr->tr_qid,
ipaddr_string(&tr->tr_src), ipaddr_string(&tr->tr_dst),
@@ -132,7 +132,7 @@ static void print_mtrace(register const u_char *bp, register u_int len)
static void print_mresp(register const u_char *bp, register u_int len)
{
- register struct tr_query* tr = (struct tr_query*)(bp + 8);
+ register struct tr_query *tr = (struct tr_query *)(bp + 8);
printf("mresp %d: %s to %s reply-to %s", tr->tr_qid,
ipaddr_string(&tr->tr_src), ipaddr_string(&tr->tr_dst),
@@ -209,12 +209,12 @@ igmp_print(register const u_char *bp, register u_int len,
/* Check the IGMP checksum */
u_int32_t sum = 0;
int count;
- const u_short *sp = (u_short*)bp;
+ const u_short *sp = (u_short *)bp;
for (count = len / 2; --count >= 0; )
sum += *sp++;
if (len & 1)
- sum += ntohs(*(unsigned char*) sp << 8);
+ sum += ntohs(*(u_char *) sp << 8);
while (sum >> 16)
sum = (sum & 0xffff) + (sum >> 16);
sum = 0xffff & ~sum;
@@ -461,6 +461,22 @@ ip_print(register const u_char *bp, register u_int length)
}
break;
+#ifndef IPPROTO_GRE
+#define IPPROTO_GRE 47
+#endif
+ case IPPROTO_GRE:
+ if (vflag)
+ (void)printf("gre %s > %s: ",
+ ipaddr_string(&ip->ip_src),
+ ipaddr_string(&ip->ip_dst));
+ /* do it */
+ gre_print(cp, len);
+ if (! vflag) {
+ printf(" (gre encap)");
+ return;
+ }
+ break;
+
default:
(void)printf("%s > %s:", ipaddr_string(&ip->ip_src),
ipaddr_string(&ip->ip_dst));
OpenPOWER on IntegriCloud