#ifndef lint
static const char rcsid[] =
- "@(#) $Header: /tcpdump/master/tcpdump/print-ip.c,v 1.126 2003-05-25 16:40:48 hannes Exp $ (LBL)";
+ "@(#) $Header: /tcpdump/master/tcpdump/print-ip.c,v 1.128 2003-07-08 01:14:44 guy Exp $ (LBL)";
#endif
#ifdef HAVE_CONFIG_H
#include "extract.h" /* must come after interface.h */
#include "ip.h"
-
-/* Compatibility */
-#ifndef IPPROTO_ND
-#define IPPROTO_ND 77
-#endif
+#include "ipproto.h"
/*
* print the recorded route in an IP RR, LSRR or SSRR option.
int advance;
struct protoent *proto;
u_int16_t sum, ip_sum;
- const char *sep = "";
ip = (const struct ip *)bp;
if (IP_V(ip) != 4) { /* print version if != 4 */
sum = in_cksum((const u_short *)ip, hlen, 0);
if (sum != 0) {
ip_sum = EXTRACT_16BITS(&ip->ip_sum);
- (void)printf("%sbad cksum %x (->%x)!", sep,
- ip_sum,
+ (void)printf(", bad cksum %x (->%x)!", ip_sum,
in_cksum_shouldbe(ip_sum, sum));
- sep = ", ";
}
}
cp = (const u_char *)ip + hlen;
nh = ip->ip_p;
-#ifndef IPPROTO_SCTP
-#define IPPROTO_SCTP 132
-#endif
if (nh != IPPROTO_TCP && nh != IPPROTO_UDP &&
nh != IPPROTO_SCTP) {
(void)printf("%s > %s: ", ipaddr_string(&ip->ip_src),
again:
switch (nh) {
-#ifndef IPPROTO_AH
-#define IPPROTO_AH 51
-#endif
case IPPROTO_AH:
nh = *cp;
advance = ah_print(cp);
len -= advance;
goto again;
-#ifndef IPPROTO_ESP
-#define IPPROTO_ESP 50
-#endif
case IPPROTO_ESP:
{
int enh, padlen;
goto again;
}
-#ifndef IPPROTO_IPCOMP
-#define IPPROTO_IPCOMP 108
-#endif
case IPPROTO_IPCOMP:
{
int enh;
icmp_print(cp, len, (const u_char *)ip, (off & 0x3fff));
break;
-#ifndef IPPROTO_IGRP
-#define IPPROTO_IGRP 9
-#endif
case IPPROTO_IGRP:
igrp_print(cp, len, (const u_char *)ip);
break;
egp_print(cp);
break;
-#ifndef IPPROTO_OSPF
-#define IPPROTO_OSPF 89
-#endif
case IPPROTO_OSPF:
ospf_print(cp, len, (const u_char *)ip);
break;
-#ifndef IPPROTO_IGMP
-#define IPPROTO_IGMP 2
-#endif
case IPPROTO_IGMP:
igmp_print(cp, len);
break;
- case 4:
+ case IPPROTO_IPV4:
/* DVMRP multicast tunnel (ip-in-ip encapsulation) */
ip_print(cp, len);
if (! vflag) {
break;
#ifdef INET6
-#ifndef IP6PROTO_ENCAP
-#define IP6PROTO_ENCAP 41
-#endif
- case IP6PROTO_ENCAP:
+ case IPPROTO_IPV6:
/* ip6-in-ip encapsulation */
ip6_print(cp, len);
break;
#endif /*INET6*/
-#ifndef IPPROTO_RSVP
-#define IPPROTO_RSVP 46
-#endif
case IPPROTO_RSVP:
rsvp_print(cp, len);
break;
-#ifndef IPPROTO_GRE
-#define IPPROTO_GRE 47
-#endif
case IPPROTO_GRE:
/* do it */
gre_print(cp, len);
break;
-#ifndef IPPROTO_MOBILE
-#define IPPROTO_MOBILE 55
-#endif
case IPPROTO_MOBILE:
mobile_print(cp, len);
break;
-#ifndef IPPROTO_PIM
-#define IPPROTO_PIM 103
-#endif
case IPPROTO_PIM:
pim_print(cp, len);
break;
-#ifndef IPPROTO_VRRP
-#define IPPROTO_VRRP 112
-#endif
case IPPROTO_VRRP:
vrrp_print(cp, len, ip->ip_ttl);
break;