X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/ad06a893cfd3acca3fba38d8b39b6b15dd3053ea..a90e99737eceb0041b83d95895b6d46eea41124f:/print-arcnet.c diff --git a/print-arcnet.c b/print-arcnet.c index abec0240..9531f346 100644 --- a/print-arcnet.c +++ b/print-arcnet.c @@ -21,8 +21,8 @@ * From: NetBSD: print-arcnet.c,v 1.2 2000/04/24 13:02:28 itojun Exp */ #ifndef lint -static const char rcsid[] = - "@(#) $Header: /tcpdump/master/tcpdump/print-arcnet.c,v 1.14 2003-01-23 09:05:38 guy Exp $ (LBL)"; +static const char rcsid[] _U_ = + "@(#) $Header: /tcpdump/master/tcpdump/print-arcnet.c,v 1.20 2005-04-06 21:32:38 mcr Exp $ (LBL)"; #endif #ifdef HAVE_CONFIG_H @@ -35,6 +35,7 @@ static const char rcsid[] = #include #include "interface.h" +#include "extract.h" #include "arcnet.h" static int arcnet_encap_print(u_char arctype, const u_char *p, @@ -103,7 +104,7 @@ arcnet_print(const u_char *bp, u_int length, int phds, int flag, u_int seqid) /* * This is the top level routine of the printer. 'p' points * to the ARCNET header of the packet, 'h->ts' is the timestamp, - * 'h->length' is the length of the packet off the wire, and 'h->caplen' + * 'h->len' is the length of the packet off the wire, and 'h->caplen' * is the number of bytes actually captured. */ u_int @@ -151,11 +152,11 @@ arcnet_if_print(const struct pcap_pkthdr *h, const u_char *p) return (caplen); } flag = ap->arc_flag2; - seqid = ap->arc_seqid2; + seqid = EXTRACT_16BITS(&ap->arc_seqid2); archdrlen = ARC_HDRNEWLEN_EXC; } else { flag = ap->arc_flag; - seqid = ap->arc_seqid; + seqid = EXTRACT_16BITS(&ap->arc_seqid); archdrlen = ARC_HDRNEWLEN; } } @@ -187,10 +188,11 @@ arcnet_if_print(const struct pcap_pkthdr *h, const u_char *p) /* * This is the top level routine of the printer. 'p' points * to the ARCNET header of the packet, 'h->ts' is the timestamp, - * 'h->length' is the length of the packet off the wire, and 'h->caplen' + * 'h->len' is the length of the packet off the wire, and 'h->caplen' * is the number of bytes actually captured. It is quite similar * to the non-Linux style printer except that Linux doesn't ever - * supply packets that look like exception frames, and headers have an + * supply packets that look like exception frames, it always supplies + * reassembled packets rather than raw frames, and headers have an * extra "offset" field between the src/dest and packet type. */ u_int @@ -200,8 +202,7 @@ arcnet_linux_if_print(const struct pcap_pkthdr *h, const u_char *p) u_int length = h->len; const struct arc_linux_header *ap; - int flag = 0, archdrlen = 0; - u_int seqid = 0; + int archdrlen = 0; u_char arc_type; if (caplen < ARC_LINUX_HDRLEN) { @@ -228,7 +229,7 @@ arcnet_linux_if_print(const struct pcap_pkthdr *h, const u_char *p) } if (eflag) - arcnet_print(p, length, 0, flag, seqid); + arcnet_print(p, length, 0, 0, 0); /* * Go past the ARCNET header. @@ -259,19 +260,19 @@ arcnet_encap_print(u_char arctype, const u_char *p, case ARCTYPE_IP_OLD: case ARCTYPE_IP: - ip_print(p, length); + ip_print(gndo, p, length); return (1); #ifdef INET6 case ARCTYPE_INET6: - ip6_print(p, length); + ip6_print(gndo, p, length); return (1); #endif /*INET6*/ case ARCTYPE_ARP_OLD: case ARCTYPE_ARP: case ARCTYPE_REVARP: - arp_print(p, length, caplen); + arp_print(gndo, p, length, caplen); return (1); case ARCTYPE_ATALK: /* XXX was this ever used? */ @@ -288,3 +289,10 @@ arcnet_encap_print(u_char arctype, const u_char *p, return (0); } } + +/* + * Local Variables: + * c-style: bsd + * End: + */ +