X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/cfabfb053b4bf5b50f4d98d59053e1cc97ff5014..579d53d4aa0adbf1e29b46b632722f419b5d231b:/print-fddi.c diff --git a/print-fddi.c b/print-fddi.c index 0bd439ac..1e7d554a 100644 --- a/print-fddi.c +++ b/print-fddi.c @@ -20,8 +20,8 @@ */ #ifndef lint -static const char rcsid[] = - "@(#) $Header: /tcpdump/master/tcpdump/print-fddi.c,v 1.60 2002-12-18 09:41:15 guy Exp $ (LBL)"; +static const char rcsid[] _U_ = + "@(#) $Header: /tcpdump/master/tcpdump/print-fddi.c,v 1.66 2005-11-13 12:12:41 guy Exp $ (LBL)"; #endif #ifdef HAVE_CONFIG_H @@ -255,13 +255,6 @@ fddi_print(const u_char *p, u_int length, u_int caplen) */ extract_fddi_addrs(fddip, (char *)ESRC(&ehdr), (char *)EDST(&ehdr)); - /* - * Some printers want to check that they're not walking off the - * end of the packet. - * Rather than pass it all the way down, we set this global. - */ - snapend = p + caplen; - if (eflag) fddi_hdr_print(fddip, length, ESRC(&ehdr), EDST(&ehdr)); @@ -271,7 +264,6 @@ fddi_print(const u_char *p, u_int length, u_int caplen) caplen -= FDDI_HDRLEN; /* Frame Control field determines interpretation of packet */ - extracted_ethertype = 0; if ((fddip->fddi_fc & FDDIFC_CLFF) == FDDIFC_LLC_ASYNC) { /* Try to print the LLC-layer header & higher layers */ if (llc_print(p, length, caplen, ESRC(&ehdr), EDST(&ehdr), @@ -287,7 +279,7 @@ fddi_print(const u_char *p, u_int length, u_int caplen) printf("(LLC %s) ", etherproto_string(htons(extracted_ethertype))); } - if (!xflag && !qflag) + if (!suppress_default_print) default_print(p, caplen); } } else if ((fddip->fddi_fc & FDDIFC_CLFF) == FDDIFC_SMT) @@ -297,7 +289,7 @@ fddi_print(const u_char *p, u_int length, u_int caplen) if (!eflag) fddi_hdr_print(fddip, length + FDDI_HDRLEN, ESRC(&ehdr), EDST(&ehdr)); - if (!xflag && !qflag) + if (!suppress_default_print) default_print(p, caplen); } } @@ -305,30 +297,13 @@ fddi_print(const u_char *p, u_int length, u_int caplen) /* * This is the top level routine of the printer. 'p' points * to the FDDI 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. */ -void -fddi_if_print(u_char *pcap _U_, const struct pcap_pkthdr *h, - register const u_char *p) +u_int +fddi_if_print(const struct pcap_pkthdr *h, register const u_char *p) { - u_int caplen = h->caplen; - u_int length = h->len; - - ++infodelay; - ts_print(&h->ts); - - fddi_print(p, length, caplen); - - /* - * If "-x" was specified, print packet data in hex. - */ - if (xflag) - default_print_packet(p, caplen, FDDI_HDRLEN); - - putchar('\n'); + fddi_print(p, h->len, h->caplen); - --infodelay; - if (infoprint) - info(0); + return (FDDI_HDRLEN); }