X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/7068209574374db8934ceaaac8f92e5eb5c62880..32e24ead3b2a171e5f5eff50d7231c2514eda9b4:/print-loopback.c diff --git a/print-loopback.c b/print-loopback.c index 205c4aed..ea7d7280 100644 --- a/print-loopback.c +++ b/print-loopback.c @@ -33,16 +33,15 @@ */ #ifdef HAVE_CONFIG_H -#include "config.h" +#include #endif -#include +#include "netdissect-stdinc.h" #include "netdissect.h" #include "extract.h" #include "addrtoname.h" -static const char tstr[] = " [|loopback]"; #define LOOPBACK_REPLY 1 #define LOOPBACK_FWDDATA 2 @@ -56,7 +55,7 @@ static const struct tok fcode_str[] = { static void loopback_message_print(netdissect_options *ndo, const u_char *cp, const u_int len) { - const u_char *ep = cp + len; + const u_char *ep = ndo->ndo_snapend; uint16_t function; if (len < 2) @@ -65,7 +64,7 @@ loopback_message_print(netdissect_options *ndo, const u_char *cp, const u_int le ND_TCHECK_2(cp); function = EXTRACT_LE_U_2(cp); cp += 2; - ND_PRINT((ndo, ", %s", tok2str(fcode_str, " invalid (%u)", function))); + ND_PRINT(", %s", tok2str(fcode_str, " invalid (%u)", function)); switch (function) { case LOOPBACK_REPLY: @@ -73,10 +72,10 @@ loopback_message_print(netdissect_options *ndo, const u_char *cp, const u_int le goto invalid; /* receipt number */ ND_TCHECK_2(cp); - ND_PRINT((ndo, ", receipt number %u", EXTRACT_LE_U_2(cp))); + ND_PRINT(", receipt number %u", EXTRACT_LE_U_2(cp)); cp += 2; /* data */ - ND_PRINT((ndo, ", data (%u octets)", len - 4)); + ND_PRINT(", data (%u octets)", len - 4); ND_TCHECK_LEN(cp, len - 4); break; case LOOPBACK_FWDDATA: @@ -84,10 +83,10 @@ loopback_message_print(netdissect_options *ndo, const u_char *cp, const u_int le goto invalid; /* forwarding address */ ND_TCHECK_LEN(cp, MAC_ADDR_LEN); - ND_PRINT((ndo, ", forwarding address %s", etheraddr_string(ndo, cp))); + ND_PRINT(", forwarding address %s", etheraddr_string(ndo, cp)); cp += MAC_ADDR_LEN; /* data */ - ND_PRINT((ndo, ", data (%u octets)", len - 8)); + ND_PRINT(", data (%u octets)", len - 8); ND_TCHECK_LEN(cp, len - 8); break; default: @@ -97,39 +96,40 @@ loopback_message_print(netdissect_options *ndo, const u_char *cp, const u_int le return; invalid: - ND_PRINT((ndo, "%s", istr)); + nd_print_invalid(ndo); ND_TCHECK_LEN(cp, ep - cp); return; trunc: - ND_PRINT((ndo, "%s", tstr)); + nd_print_trunc(ndo); } void loopback_print(netdissect_options *ndo, const u_char *cp, const u_int len) { - const u_char *ep = cp + len; + const u_char *ep = ndo->ndo_snapend; uint16_t skipCount; - ND_PRINT((ndo, "Loopback")); + ndo->ndo_protocol = "loopback"; + ND_PRINT("Loopback"); if (len < 2) goto invalid; /* skipCount */ ND_TCHECK_2(cp); skipCount = EXTRACT_LE_U_2(cp); cp += 2; - ND_PRINT((ndo, ", skipCount %u", skipCount)); + ND_PRINT(", skipCount %u", skipCount); if (skipCount % 8) - ND_PRINT((ndo, " (bogus)")); + ND_PRINT(" (bogus)"); if (skipCount > len - 2) goto invalid; loopback_message_print(ndo, cp + skipCount, len - 2 - skipCount); return; invalid: - ND_PRINT((ndo, "%s", istr)); + nd_print_invalid(ndo); ND_TCHECK_LEN(cp, ep - cp); return; trunc: - ND_PRINT((ndo, "%s", tstr)); + nd_print_trunc(ndo); }