/* \summary: Attached Resource Computer NETwork (ARCNET) printer */
#ifdef HAVE_CONFIG_H
-#include "config.h"
+#include <config.h>
#endif
-#include <netdissect-stdinc.h>
+#include "netdissect-stdinc.h"
#include "netdissect.h"
#include "extract.h"
{ 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),
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,
}
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,
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,
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);
}
}
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);
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);
}
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;
return (0);
}
}
-
-/*
- * Local Variables:
- * c-style: bsd
- * End:
- */
-