*/
#ifndef lint
static const char rcsid[] =
- "@(#) $Header: /tcpdump/master/tcpdump/print-arcnet.c,v 1.2 2001-04-24 02:26:14 guy Exp $ (LBL)";
+ "@(#) $Header: /tcpdump/master/tcpdump/print-arcnet.c,v 1.6 2001-09-17 21:57:54 fenner Exp $ (LBL)";
#endif
#ifdef HAVE_CONFIG_H
#include "interface.h"
#include "arcnet.h"
-const u_char *packetp;
-const u_char *snapend;
-
int arcnet_encap_print(u_char arctype, const u_char *p,
u_int length, u_int caplen);
-struct arctype_map {
- const int arctype;
- char * const name;
-} arctypemap[] = {
+struct tok arctypemap[] = {
{ ARCTYPE_IP_OLD, "oldip" },
{ ARCTYPE_ARP_OLD, "oldarp" },
{ ARCTYPE_IP, "ip" },
arcnet_print(const u_char *bp, u_int length, int phds, int flag, u_int seqid)
{
const struct arc_header *ap;
- struct arctype_map *atmp;
- char *arctypename;
- char typebuf[3];
+ const char *arctypename;
ap = (const struct arc_header *)bp;
return;
}
- for (arctypename = NULL, atmp = arctypemap; atmp->arctype; atmp++) {
- if (atmp->arctype == ap->arc_type) {
- arctypename = atmp->name;
- break;
- }
- }
- if (!arctypename) {
- arctypename = typebuf;
- (void)snprintf(typebuf, sizeof(typebuf), "%02x", ap->arc_type);
- }
+ arctypename = tok2str(arctypemap, "%02x", ap->arc_type);
if (!phds) {
(void)printf("%02x %02x %s %d: ",
{
u_int caplen = h->caplen;
u_int length = h->len;
- struct arc_header *ap;
+ const struct arc_header *ap;
- int phds, flag = 0, archdrlen;
+ int phds, flag = 0, archdrlen = 0;
u_int seqid = 0;
u_char arc_type;
+ ++infodelay;
ts_print(&h->ts);
if (caplen < ARC_HDRLEN) {
goto out;
}
- ap = (struct arc_header *)p;
+ ap = (const struct arc_header *)p;
arc_type = ap->arc_type;
switch (arc_type) {
out:
putchar('\n');
+ --infodelay;
+ if (infoprint)
+ info(0);
}
/*