X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/fc6f112b40b9da56286ebc125f109e2889f5ebdb..refs/pull/482/head:/print-ip6.c diff --git a/print-ip6.c b/print-ip6.c index 7fc93d93..45508ced 100644 --- a/print-ip6.c +++ b/print-ip6.c @@ -19,18 +19,15 @@ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ -#define NETDISSECT_REWORKED #ifdef HAVE_CONFIG_H #include "config.h" #endif -#ifdef INET6 - -#include +#include #include -#include "interface.h" +#include "netdissect.h" #include "addrtoname.h" #include "extract.h" @@ -41,15 +38,15 @@ * Compute a V6-style checksum by building a pseudoheader. */ int -nextproto6_cksum(const struct ip6_hdr *ip6, const u_int8_t *data, +nextproto6_cksum(const struct ip6_hdr *ip6, const uint8_t *data, u_int len, u_int covlen, u_int next_proto) { struct { struct in6_addr ph_src; struct in6_addr ph_dst; - u_int32_t ph_len; - u_int8_t ph_zero[3]; - u_int8_t ph_nxt; + uint32_t ph_len; + uint8_t ph_zero[3]; + uint8_t ph_nxt; } ph; struct cksum_vec vec[2]; @@ -60,7 +57,7 @@ nextproto6_cksum(const struct ip6_hdr *ip6, const u_int8_t *data, ph.ph_len = htonl(len); ph.ph_nxt = next_proto; - vec[0].ptr = (const u_int8_t *)(void *)&ph; + vec[0].ptr = (const uint8_t *)(void *)&ph; vec[0].len = sizeof(ph); vec[1].ptr = data; vec[1].len = covlen; @@ -147,8 +144,8 @@ ip6_print(netdissect_options *ndo, const u_char *bp, u_int length) if (cp == (const u_char *)(ip6 + 1) && nh != IPPROTO_TCP && nh != IPPROTO_UDP && nh != IPPROTO_DCCP && nh != IPPROTO_SCTP) { - ND_PRINT((ndo, "%s > %s: ", ip6addr_string(&ip6->ip6_src), - ip6addr_string(&ip6->ip6_dst))); + ND_PRINT((ndo, "%s > %s: ", ip6addr_string(ndo, &ip6->ip6_src), + ip6addr_string(ndo, &ip6->ip6_dst))); } switch (nh) { @@ -223,8 +220,7 @@ ip6_print(netdissect_options *ndo, const u_char *bp, u_int length) } case IPPROTO_PIM: - pim_print(ndo, cp, len, nextproto6_cksum(ip6, cp, len, len, - IPPROTO_PIM)); + pim_print(ndo, cp, len, (const u_char *)ip6); return; case IPPROTO_OSPF: @@ -265,5 +261,3 @@ ip6_print(netdissect_options *ndo, const u_char *bp, u_int length) trunc: ND_PRINT((ndo, "[|ip6]")); } - -#endif /* INET6 */