X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/7c4458eb6a0cd2a617adb9a3bbca44e9f59f3937..0c20532a3e147d6d932b818f83cf0a1ca165c0db:/print-ether.c diff --git a/print-ether.c b/print-ether.c index 0711cca9..0bcd82d5 100644 --- a/print-ether.c +++ b/print-ether.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997 + * Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 2000 * The Regents of the University of California. All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -20,7 +20,7 @@ */ #ifndef lint static const char rcsid[] = - "@(#) $Header: /tcpdump/master/tcpdump/print-ether.c,v 1.60 2000-12-18 05:41:59 guy Exp $ (LBL)"; + "@(#) $Header: /tcpdump/master/tcpdump/print-ether.c,v 1.66 2001-11-25 02:01:47 guy Exp $ (LBL)"; #endif #ifdef HAVE_CONFIG_H @@ -82,6 +82,7 @@ ether_if_print(u_char *user, const struct pcap_pkthdr *h, const u_char *p) u_short ether_type; u_short extracted_ethertype; + ++infodelay; ts_print(&h->ts); if (caplen < ETHER_HDRLEN) { @@ -117,7 +118,7 @@ ether_if_print(u_char *user, const struct pcap_pkthdr *h, const u_char *p) &extracted_ethertype) == 0) { /* ether_type not known, print raw packet */ if (!eflag) - ether_print((u_char *)ep, length); + ether_print((u_char *)ep, length + ETHER_HDRLEN); if (extracted_ethertype) { printf("(LLC %s) ", etherproto_string(htons(extracted_ethertype))); @@ -137,6 +138,9 @@ ether_if_print(u_char *user, const struct pcap_pkthdr *h, const u_char *p) default_print(p, caplen); out: putchar('\n'); + --infodelay; + if (infoprint) + info(0); } /* @@ -190,6 +194,7 @@ ether_encap_print(u_short ethertype, const u_char *p, return (1); case ETHERTYPE_IPX: + printf("(NOV-ETHII) "); ipx_print(p, length); return (1); @@ -226,6 +231,19 @@ ether_encap_print(u_short ethertype, const u_char *p, pppoe_print(p, length); return (1); + case ETHERTYPE_PPP: + printf("ppp"); + if (length) { + printf(": "); + ppp_print(p, length); + } + return (1); + + case ETHERTYPE_MPLS: + case ETHERTYPE_MPLS_MULTI: + mpls_print(p, length); + return (1); + case ETHERTYPE_LAT: case ETHERTYPE_SCA: case ETHERTYPE_MOPRC: