X-Git-Url: https://git.tcpdump.org/tcpdump/blobdiff_plain/cfabfb053b4bf5b50f4d98d59053e1cc97ff5014..fb8b947488c7f22b518de1df1a91e663dc7ab33c:/print-sl.c diff --git a/print-sl.c b/print-sl.c index fa6fa0f1..dbe423da 100644 --- a/print-sl.c +++ b/print-sl.c @@ -20,8 +20,8 @@ */ #ifndef lint -static const char rcsid[] = - "@(#) $Header: /tcpdump/master/tcpdump/print-sl.c,v 1.61 2002-12-18 09:41:17 guy Exp $ (LBL)"; +static const char rcsid[] _U_ = + "@(#) $Header: /tcpdump/master/tcpdump/print-sl.c,v 1.64 2003-11-16 09:36:36 guy Exp $ (LBL)"; #endif #ifdef HAVE_CONFIG_H @@ -48,28 +48,18 @@ static u_int lastconn = 255; static void sliplink_print(const u_char *, const struct ip *, u_int); static void compressed_sl_print(const u_char *, const struct ip *, u_int, int); -void -sl_if_print(u_char *user _U_, const struct pcap_pkthdr *h, const u_char *p) +u_int +sl_if_print(const struct pcap_pkthdr *h, const u_char *p) { register u_int caplen = h->caplen; register u_int length = h->len; register const struct ip *ip; - ++infodelay; - ts_print(&h->ts); - if (caplen < SLIP_HDRLEN) { printf("[|slip]"); - goto out; + return (caplen); } - /* - * 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; - length -= SLIP_HDRLEN; ip = (struct ip *)(p + SLIP_HDRLEN); @@ -90,38 +80,21 @@ sl_if_print(u_char *user _U_, const struct pcap_pkthdr *h, const u_char *p) printf ("ip v%d", IP_V(ip)); } - if (xflag) - default_print_packet(p, caplen, SLIP_HDRLEN); - out: - putchar('\n'); - --infodelay; - if (infoprint) - info(0); + return (SLIP_HDRLEN); } - -void -sl_bsdos_if_print(u_char *user _U_, const struct pcap_pkthdr *h, const u_char *p) +u_int +sl_bsdos_if_print(const struct pcap_pkthdr *h, const u_char *p) { register u_int caplen = h->caplen; register u_int length = h->len; register const struct ip *ip; - ++infodelay; - ts_print(&h->ts); - if (caplen < SLIP_HDRLEN) { printf("[|slip]"); - goto out; + return (caplen); } - /* - * 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; - length -= SLIP_HDRLEN; ip = (struct ip *)(p + SLIP_HDRLEN); @@ -133,13 +106,7 @@ sl_bsdos_if_print(u_char *user _U_, const struct pcap_pkthdr *h, const u_char *p ip_print((u_char *)ip, length); - if (xflag) - default_print_packet(p, caplen, SLIP_HDRLEN); - out: - putchar('\n'); - --infodelay; - if (infoprint) - info(0); + return (SLIP_HDRLEN); } static void