X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/cb08bf9e3e26325e4fb28ba49efa1cb05b7db6e4..refs/heads/tcpdump-4.1:/print-ip.c diff --git a/print-ip.c b/print-ip.c index 3d08f553..acf3bd8b 100644 --- a/print-ip.c +++ b/print-ip.c @@ -21,7 +21,7 @@ #ifndef lint static const char rcsid[] _U_ = - "@(#) $Header: /tcpdump/master/tcpdump/print-ip.c,v 1.158 2007-03-27 10:44:09 hannes Exp $ (LBL)"; + "@(#) $Header: /tcpdump/master/tcpdump/print-ip.c,v 1.159 2007-09-14 01:29:28 guy Exp $ (LBL)"; #endif #ifdef HAVE_CONFIG_H @@ -50,6 +50,7 @@ struct tok ip_option_values[] = { { IPOPT_SSRR, "SSRR" }, { IPOPT_LSRR, "LSRR" }, { IPOPT_RA, "RA" }, + { IPOPT_RFC1393, "traceroute" }, { 0, NULL } }; @@ -507,7 +508,8 @@ again: break; case IPPROTO_PIM: - pim_print(ipds->cp, ipds->len); + pim_print(ipds->cp, ipds->len, + in_cksum((const u_short*)ipds->cp, ipds->len, 0)); break; case IPPROTO_VRRP: @@ -656,7 +658,7 @@ ip_print(netdissect_options *ndo, printf(")"); } - if ((u_char *)ipds->ip + hlen <= snapend) { + if (!Kflag && (u_char *)ipds->ip + hlen <= snapend) { sum = in_cksum((const u_short *)ipds->ip, hlen, 0); if (sum != 0) { ip_sum = EXTRACT_16BITS(&ipds->ip->ip_sum);