X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/fb2479d733dbe8a991d11909b319341f7db62ab1..a24cccfd4abcda51db9f73f46d425c7c1e357a87:/print-arcnet.c diff --git a/print-arcnet.c b/print-arcnet.c index 1b465106..e5e9bbfe 100644 --- a/print-arcnet.c +++ b/print-arcnet.c @@ -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, 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), @@ -191,8 +190,9 @@ arcnet_if_print(netdissect_options *ndo, const struct pcap_pkthdr *h, const u_ch 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); } @@ -212,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); @@ -278,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); } @@ -289,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; @@ -360,10 +363,3 @@ arcnet_encap_print(netdissect_options *ndo, u_char arctype, const u_char *p, return (0); } } - -/* - * Local Variables: - * c-style: bsd - * End: - */ -