From: Francois-Xavier Le Bail Date: Mon, 31 Jul 2023 10:11:26 +0000 (+0200) Subject: IPv6: Print the protocol name before any test X-Git-Url: https://git.tcpdump.org/tcpdump/commitdiff_plain/4da3308f277b7cb520a0edf43b2cca2bc0ed2e29 IPv6: Print the protocol name before any test Use nd_print_protocol_caps(). IP6_VERSION() uses GET_U_1(), so there's no need for ND_TCHECK_*() beforehand. --- diff --git a/print-ip6.c b/print-ip6.c index 2f1183c0..285fc979 100644 --- a/print-ip6.c +++ b/print-ip6.c @@ -241,20 +241,22 @@ ip6_print(netdissect_options *ndo, const u_char *bp, u_int length) ndo->ndo_protocol = "ip6"; ip6 = (const struct ip6_hdr *)bp; + if (!ndo->ndo_eflag) { + nd_print_protocol_caps(ndo); + ND_PRINT(" "); + } + + if (IP6_VERSION(ip6) != 6) { + ND_PRINT("version error: %u != 6", IP6_VERSION(ip6)); + return; + } + ND_TCHECK_SIZE(ip6); if (length < sizeof (struct ip6_hdr)) { ND_PRINT("truncated-ip6 %u", length); return; } - if (!ndo->ndo_eflag) - ND_PRINT("IP6 "); - - if (IP6_VERSION(ip6) != 6) { - ND_PRINT("version error: %u != 6", IP6_VERSION(ip6)); - return; - } - payload_len = GET_BE_U_2(ip6->ip6_plen); /* * RFC 1883 says: