X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/b6303af682e72841f79ac6847f93b0cb0a49c549..1a84a1e1142f2c60dc045c2557ed4d484b576d8b:/print-ip6.c diff --git a/print-ip6.c b/print-ip6.c index c18b5f00..dd6b7f51 100644 --- a/print-ip6.c +++ b/print-ip6.c @@ -24,8 +24,6 @@ #include "config.h" #endif -#ifdef INET6 - #include #include @@ -34,6 +32,8 @@ #include "addrtoname.h" #include "extract.h" +#ifdef INET6 + #include "ip6.h" #include "ipproto.h" @@ -41,15 +41,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 +60,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 +147,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) { @@ -194,7 +194,7 @@ ip6_print(netdissect_options *ndo, const u_char *bp, u_int length) dccp_print(ndo, cp, (const u_char *)ip6, len); return; case IPPROTO_TCP: - tcp_print(cp, len, (const u_char *)ip6, fragmented); + tcp_print(ndo, cp, len, (const u_char *)ip6, fragmented); return; case IPPROTO_UDP: udp_print(ndo, cp, len, (const u_char *)ip6, fragmented); @@ -228,7 +228,7 @@ ip6_print(netdissect_options *ndo, const u_char *bp, u_int length) return; case IPPROTO_OSPF: - ospf6_print(cp, len); + ospf6_print(ndo, cp, len); return; case IPPROTO_IPV6: @@ -248,7 +248,7 @@ ip6_print(netdissect_options *ndo, const u_char *bp, u_int length) return; case IPPROTO_RSVP: - rsvp_print(cp, len); + rsvp_print(ndo, cp, len); return; case IPPROTO_NONE: @@ -266,4 +266,12 @@ trunc: ND_PRINT((ndo, "[|ip6]")); } +#else /* INET6 */ + +void +ip6_print(netdissect_options *ndo, const u_char *bp _U_, u_int length) +{ + ND_PRINT((ndo, "IP6, length: %u (printing not supported)", length)); +} + #endif /* INET6 */