diff options
author | fenner <fenner@FreeBSD.org> | 2002-06-21 00:43:23 +0000 |
---|---|---|
committer | fenner <fenner@FreeBSD.org> | 2002-06-21 00:43:23 +0000 |
commit | 91fc581e384bca8ae8831d23b70ab73ab0dc1a21 (patch) | |
tree | 89431945035dbd4a9ce74e63c4a1f65ed4166a1a /contrib/tcpdump/print-ppp.c | |
parent | f815ae37f4671c581fdc1c6f99a8490a6dfbb4f6 (diff) | |
download | FreeBSD-src-91fc581e384bca8ae8831d23b70ab73ab0dc1a21.zip FreeBSD-src-91fc581e384bca8ae8831d23b70ab73ab0dc1a21.tar.gz |
Import tcpdump 3.7.1, from
http://www.tcpdump.org/release/tcpdump-3.7.1.tar.gz
Diffstat (limited to 'contrib/tcpdump/print-ppp.c')
-rw-r--r-- | contrib/tcpdump/print-ppp.c | 40 |
1 files changed, 28 insertions, 12 deletions
diff --git a/contrib/tcpdump/print-ppp.c b/contrib/tcpdump/print-ppp.c index 5dc1b83..dc2950f 100644 --- a/contrib/tcpdump/print-ppp.c +++ b/contrib/tcpdump/print-ppp.c @@ -31,7 +31,7 @@ #ifndef lint static const char rcsid[] = - "@(#) $Header: /tcpdump/master/tcpdump/print-ppp.c,v 1.58 2000/12/27 11:09:08 itojun Exp $ (LBL)"; + "@(#) $Header: /tcpdump/master/tcpdump/print-ppp.c,v 1.64 2001/09/09 02:04:19 guy Exp $ (LBL)"; #endif #ifdef HAVE_CONFIG_H @@ -352,14 +352,14 @@ ppp_protoname(u_int proto) case PPP_XNS: return "XNS"; #endif case PPP_IPX: return "IPX"; + case PPP_OSI: return "OSI"; case PPP_VJC: return "VJC"; case PPP_VJNC: return "VJNC"; -#ifdef PPP_COMP case PPP_COMP: return "COMP"; -#endif case PPP_IPCP: return "IPCP"; case PPP_IPV6CP: return "IPv6CP"; case PPP_IPXCP: return "IPXCP"; + case PPP_OSICP: return "OSICP"; case PPP_CCP: return "CCP"; case PPP_LCP: return "LCP"; case PPP_PAP: return "PAP"; @@ -981,6 +981,11 @@ handle_ppp(u_int proto, const u_char *p, int length) case PPP_IPX: ipx_print(p, length); break; + case PPP_OSI: + isoclns_print(p, length, length, NULL, NULL); + break; + default: + break; } } @@ -1014,7 +1019,8 @@ ppp_print(register const u_char *p, u_int length) length -= 2; } - printf("%s %d: ", ppp_protoname(proto), full_length); + if (eflag) + printf("%s %d: ", ppp_protoname(proto), full_length); handle_ppp(proto, p, length); return; @@ -1031,6 +1037,7 @@ ppp_if_print(u_char *user, const struct pcap_pkthdr *h, register u_int length = h->len; register u_int caplen = h->caplen; + ++infodelay; ts_print(&h->ts); if (caplen < PPP_HDRLEN) { @@ -1093,6 +1100,9 @@ ppp_if_print(u_char *user, const struct pcap_pkthdr *h, default_print(p, caplen); out: putchar('\n'); + --infodelay; + if (infoprint) + info(0); } /* @@ -1112,6 +1122,9 @@ ppp_hdlc_if_print(u_char *user, const struct pcap_pkthdr *h, register u_int caplen = h->caplen; u_int proto; + ++infodelay; + ts_print(&h->ts); + if (caplen < 2) { printf("[|ppp]"); goto out; @@ -1133,7 +1146,6 @@ ppp_hdlc_if_print(u_char *user, const struct pcap_pkthdr *h, goto out; } - ts_print(&h->ts); if (eflag) printf("%02x %02x %d ", p[0], p[1], length); p += 2; @@ -1142,21 +1154,18 @@ ppp_hdlc_if_print(u_char *user, const struct pcap_pkthdr *h, proto = EXTRACT_16BITS(p); p += 2; length -= 2; - printf("%s: ", ppp_protoname(proto)); + if (eflag) + printf("%s: ", ppp_protoname(proto)); handle_ppp(proto, p, length); break; case CHDLC_UNICAST: case CHDLC_BCAST: - /* - * Have the Cisco HDLC print routine do all the work. - */ - chdlc_if_print(user, h, p); - return; + chdlc_print(p, length, caplen); + goto out; default: - ts_print(&h->ts); if (eflag) printf("%02x %02x %d ", p[0], p[1], length); p += 2; @@ -1175,6 +1184,9 @@ ppp_hdlc_if_print(u_char *user, const struct pcap_pkthdr *h, default_print(p, caplen); out: putchar('\n'); + --infodelay; + if (infoprint) + info(0); } @@ -1229,6 +1241,7 @@ ppp_bsdos_if_print(u_char *user, const struct pcap_pkthdr *h, const u_char *q; int i; + ++infodelay; ts_print(&h->ts); if (caplen < PPP_BSDI_HDRLEN) { @@ -1370,5 +1383,8 @@ printx: default_print((const u_char *)p, caplen - hdrlength); out: putchar('\n'); + --infodelay; + if (infoprint) + info(0); #endif /* __bsdi__ */ } |