X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/e2982e7f6f0b624a773ec5a58885ee80fab46d34..299fc72fea7a32b18a77457c70028e9679fd5c0d:/print-arcnet.c diff --git a/print-arcnet.c b/print-arcnet.c index 89c20a89..e5e9bbfe 100644 --- a/print-arcnet.c +++ b/print-arcnet.c @@ -24,10 +24,10 @@ /* \summary: Attached Resource Computer NETwork (ARCNET) printer */ #ifdef HAVE_CONFIG_H -#include "config.h" +#include #endif -#include +#include "netdissect-stdinc.h" #include "netdissect.h" #include "extract.h" @@ -118,17 +118,16 @@ static const struct tok arctypemap[] = { { 0, 0 } }; -static inline void +static void arcnet_print(netdissect_options *ndo, const u_char *bp, u_int length, int phds, - int flag, u_int seqid) + u_int flag, u_int seqid) { const struct arc_header *ap; const char *arctypename; - + ndo->ndo_protocol = "arcnet"; ap = (const struct arc_header *)bp; - if (ndo->ndo_qflag) { ND_PRINT("%02x %02x %u: ", EXTRACT_U_1(ap->arc_shost), @@ -140,7 +139,7 @@ arcnet_print(netdissect_options *ndo, const u_char *bp, u_int length, int phds, arctypename = tok2str(arctypemap, "%02x", EXTRACT_U_1(ap->arc_type)); if (!phds) { - ND_PRINT("%02x %02x %s %d: ", + ND_PRINT("%02x %02x %s %u: ", EXTRACT_U_1(ap->arc_shost), EXTRACT_U_1(ap->arc_dhost), arctypename, @@ -149,7 +148,7 @@ arcnet_print(netdissect_options *ndo, const u_char *bp, u_int length, int phds, } if (flag == 0) { - ND_PRINT("%02x %02x %s seqid %04x %d: ", + ND_PRINT("%02x %02x %s seqid %04x %u: ", EXTRACT_U_1(ap->arc_shost), EXTRACT_U_1(ap->arc_dhost), arctypename, seqid, @@ -159,14 +158,14 @@ arcnet_print(netdissect_options *ndo, const u_char *bp, u_int length, int phds, if (flag & 1) ND_PRINT("%02x %02x %s seqid %04x " - "(first of %d fragments) %d: ", + "(first of %u fragments) %u: ", EXTRACT_U_1(ap->arc_shost), EXTRACT_U_1(ap->arc_dhost), arctypename, seqid, (flag + 3) / 2, length); else ND_PRINT("%02x %02x %s seqid %04x " - "(fragment %d) %d: ", + "(fragment %u) %u: ", EXTRACT_U_1(ap->arc_shost), EXTRACT_U_1(ap->arc_dhost), arctypename, seqid, @@ -186,12 +185,14 @@ arcnet_if_print(netdissect_options *ndo, const struct pcap_pkthdr *h, const u_ch u_int length = h->len; const struct arc_header *ap; - int phds, flag = 0, archdrlen = 0; + int phds; + u_int flag = 0, archdrlen = 0; u_int seqid = 0; u_char arc_type; - if (caplen < ARC_HDRLEN || length < ARC_HDRLEN) { - ND_PRINT("[|arcnet]"); + ndo->ndo_protocol = "arcnet_if"; + if (caplen < ARC_HDRLEN) { + nd_print_trunc(ndo); return (caplen); } @@ -211,17 +212,19 @@ arcnet_if_print(netdissect_options *ndo, const struct pcap_pkthdr *h, const u_ch } if (phds) { - if (caplen < ARC_HDRNEWLEN || length < ARC_HDRNEWLEN) { + if (caplen < ARC_HDRNEWLEN) { arcnet_print(ndo, p, length, 0, 0, 0); - ND_PRINT("[|phds]"); + ND_PRINT(" phds"); + nd_print_trunc(ndo); return (caplen); } flag = EXTRACT_U_1(ap->arc_flag); if (flag == 0xff) { - if (caplen < ARC_HDRNEWLEN_EXC || length < ARC_HDRNEWLEN_EXC) { + if (caplen < ARC_HDRNEWLEN_EXC) { arcnet_print(ndo, p, length, 0, 0, 0); - ND_PRINT("[|phds extended]"); + ND_PRINT(" phds extended"); + nd_print_trunc(ndo); return (caplen); } flag = EXTRACT_U_1(ap->arc_flag2); @@ -277,8 +280,9 @@ arcnet_linux_if_print(netdissect_options *ndo, const struct pcap_pkthdr *h, cons int archdrlen = 0; u_char arc_type; - if (caplen < ARC_LINUX_HDRLEN || length < ARC_LINUX_HDRLEN) { - ND_PRINT("[|arcnet]"); + ndo->ndo_protocol = "arcnet_linux_if"; + if (caplen < ARC_LINUX_HDRLEN) { + nd_print_trunc(ndo); return (caplen); } @@ -288,8 +292,8 @@ arcnet_linux_if_print(netdissect_options *ndo, const struct pcap_pkthdr *h, cons switch (arc_type) { default: archdrlen = ARC_LINUX_HDRNEWLEN; - if (caplen < ARC_LINUX_HDRNEWLEN || length < ARC_LINUX_HDRNEWLEN) { - ND_PRINT("[|arcnet]"); + if (caplen < ARC_LINUX_HDRNEWLEN) { + nd_print_trunc(ndo); return (caplen); } break; @@ -359,10 +363,3 @@ arcnet_encap_print(netdissect_options *ndo, u_char arctype, const u_char *p, return (0); } } - -/* - * Local Variables: - * c-style: bsd - * End: - */ -