/* \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((ndo, "%02x %02x %u: ",
- EXTRACT_U_1(ap->arc_shost),
- EXTRACT_U_1(ap->arc_dhost),
- length));
+ ND_PRINT("%02x %02x %u: ",
+ GET_U_1(ap->arc_shost),
+ GET_U_1(ap->arc_dhost),
+ length);
return;
}
- arctypename = tok2str(arctypemap, "%02x", EXTRACT_U_1(ap->arc_type));
+ arctypename = tok2str(arctypemap, "%02x", GET_U_1(ap->arc_type));
if (!phds) {
- ND_PRINT((ndo, "%02x %02x %s %d: ",
- EXTRACT_U_1(ap->arc_shost),
- EXTRACT_U_1(ap->arc_dhost),
+ ND_PRINT("%02x %02x %s %u: ",
+ GET_U_1(ap->arc_shost),
+ GET_U_1(ap->arc_dhost),
arctypename,
- length));
+ length);
return;
}
if (flag == 0) {
- ND_PRINT((ndo, "%02x %02x %s seqid %04x %d: ",
- EXTRACT_U_1(ap->arc_shost),
- EXTRACT_U_1(ap->arc_dhost),
+ ND_PRINT("%02x %02x %s seqid %04x %u: ",
+ GET_U_1(ap->arc_shost),
+ GET_U_1(ap->arc_dhost),
arctypename, seqid,
- length));
+ length);
return;
}
if (flag & 1)
- ND_PRINT((ndo, "%02x %02x %s seqid %04x "
- "(first of %d fragments) %d: ",
- EXTRACT_U_1(ap->arc_shost),
- EXTRACT_U_1(ap->arc_dhost),
+ ND_PRINT("%02x %02x %s seqid %04x "
+ "(first of %u fragments) %u: ",
+ GET_U_1(ap->arc_shost),
+ GET_U_1(ap->arc_dhost),
arctypename, seqid,
- (flag + 3) / 2, length));
+ (flag + 3) / 2, length);
else
- ND_PRINT((ndo, "%02x %02x %s seqid %04x "
- "(fragment %d) %d: ",
- EXTRACT_U_1(ap->arc_shost),
- EXTRACT_U_1(ap->arc_dhost),
+ ND_PRINT("%02x %02x %s seqid %04x "
+ "(fragment %u) %u: ",
+ GET_U_1(ap->arc_shost),
+ GET_U_1(ap->arc_dhost),
arctypename, seqid,
- flag/2 + 1, length));
+ flag/2 + 1, length);
}
/*
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((ndo, "[|arcnet]"));
+ ndo->ndo_protocol = "arcnet_if";
+ if (caplen < ARC_HDRLEN) {
+ nd_print_trunc(ndo);
return (caplen);
}
ap = (const struct arc_header *)p;
- arc_type = EXTRACT_U_1(ap->arc_type);
+ arc_type = GET_U_1(ap->arc_type);
switch (arc_type) {
default:
}
if (phds) {
- if (caplen < ARC_HDRNEWLEN || length < ARC_HDRNEWLEN) {
+ if (caplen < ARC_HDRNEWLEN) {
arcnet_print(ndo, p, length, 0, 0, 0);
- ND_PRINT((ndo, "[|phds]"));
+ ND_PRINT(" phds");
+ nd_print_trunc(ndo);
return (caplen);
}
- flag = EXTRACT_U_1(ap->arc_flag);
+ flag = GET_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((ndo, "[|phds extended]"));
+ ND_PRINT(" phds extended");
+ nd_print_trunc(ndo);
return (caplen);
}
- flag = EXTRACT_U_1(ap->arc_flag2);
- seqid = EXTRACT_BE_U_2(ap->arc_seqid2);
+ flag = GET_U_1(ap->arc_flag2);
+ seqid = GET_BE_U_2(ap->arc_seqid2);
archdrlen = ARC_HDRNEWLEN_EXC;
} else {
- seqid = EXTRACT_BE_U_2(ap->arc_seqid);
+ seqid = GET_BE_U_2(ap->arc_seqid);
archdrlen = ARC_HDRNEWLEN;
}
}
int archdrlen = 0;
u_char arc_type;
- if (caplen < ARC_LINUX_HDRLEN || length < ARC_LINUX_HDRLEN) {
- ND_PRINT((ndo, "[|arcnet]"));
+ ndo->ndo_protocol = "arcnet_linux_if";
+ if (caplen < ARC_LINUX_HDRLEN) {
+ nd_print_trunc(ndo);
return (caplen);
}
ap = (const struct arc_linux_header *)p;
- arc_type = EXTRACT_U_1(ap->arc_type);
+ arc_type = GET_U_1(ap->arc_type);
switch (arc_type) {
default:
archdrlen = ARC_LINUX_HDRNEWLEN;
- if (caplen < ARC_LINUX_HDRNEWLEN || length < ARC_LINUX_HDRNEWLEN) {
- ND_PRINT((ndo, "[|arcnet]"));
+ if (caplen < ARC_LINUX_HDRNEWLEN) {
+ nd_print_trunc(ndo);
return (caplen);
}
break;
case ARCTYPE_ATALK: /* XXX was this ever used? */
if (ndo->ndo_vflag)
- ND_PRINT((ndo, "et1 "));
+ ND_PRINT("et1 ");
atalk_print(ndo, p, length);
return (1);
return (0);
}
}
-
-/*
- * Local Variables:
- * c-style: bsd
- * End:
- */
-