ok?

Index: interface.h
===================================================================
RCS file: /cvs/src/usr.sbin/tcpdump/interface.h,v
retrieving revision 1.79
diff -u -p -r1.79 interface.h
--- interface.h 22 Oct 2018 16:12:45 -0000      1.79
+++ interface.h 4 Apr 2019 01:54:37 -0000
@@ -270,8 +270,7 @@ extern void ike_print(const u_char *, u_
 extern void udpencap_print(const u_char *, u_int, const u_char *);
 extern void ah_print(const u_char *, u_int, const u_char *);
 extern void esp_print(const u_char *, u_int, const u_char *);
-extern void cdp_print(const u_char *, u_int, u_int, const u_char *,
-       const u_char *);
+extern void cdp_print(const u_char *, u_int, u_int, int);
 extern void stp_print(const u_char *, u_int);
 extern void radius_print(const u_char *, u_int);
 extern void lwres_print(const u_char *, u_int);
Index: print-cdp.c
===================================================================
RCS file: /cvs/src/usr.sbin/tcpdump/print-cdp.c,v
retrieving revision 1.6
diff -u -p -r1.6 print-cdp.c
--- print-cdp.c 29 Mar 2016 04:07:50 -0000      1.6
+++ print-cdp.c 4 Apr 2019 01:54:37 -0000
@@ -46,20 +46,17 @@ void cdp_print_prefixes(const u_char * p
  * Returns non-zero IFF it succeeds in printing the header
  */
 void
-cdp_print(const u_char *p, u_int length, u_int caplen,
-         const u_char *esrc, const u_char *edst)
+cdp_print(const u_char *p, u_int length, u_int caplen, int i)
 {
-       int i;
        int type, len;
 
        /* Cisco Discovery Protocol */
 
-       if (caplen < 12) {
+       if (caplen < i + 4) {
                printf("[|cdp]");
                return;
        }
 
-       i=8;            /* CDP data starts at offset 8 */
        printf("CDP v%d, ttl=%ds", p[i], p[i+1]);
        i+=4;           /* skip version, TTL and chksum */
 
Index: print-gre.c
===================================================================
RCS file: /cvs/src/usr.sbin/tcpdump/print-gre.c,v
retrieving revision 1.23
diff -u -p -r1.23 print-gre.c
--- print-gre.c 2 Apr 2019 11:10:54 -0000       1.23
+++ print-gre.c 4 Apr 2019 01:54:37 -0000
@@ -268,6 +271,9 @@ gre_print_0(const u_char *p, u_int lengt
                break;
        case ERSPAN_II:
                gre_print_erspan2(p, length);
+               break;
+       case 0x2000:
+               cdp_print(p, length, l, 0);
                break;
        default:
                printf("unknown-proto-%04x", proto);
Index: print-llc.c
===================================================================
RCS file: /cvs/src/usr.sbin/tcpdump/print-llc.c,v
retrieving revision 1.20
diff -u -p -r1.20 print-llc.c
--- print-llc.c 16 Nov 2015 00:16:39 -0000      1.20
+++ print-llc.c 4 Apr 2019 01:54:37 -0000
@@ -100,7 +100,7 @@ llc_print(const u_char *p, u_int length,
 
                /* Cisco Discovery Protocol  - SNAP & ether type 0x2000 */
                if (llc.ethertype[0] == 0x20 && llc.ethertype[1] == 0x00) {
-                       cdp_print(p, length, caplen, esrc, edst);
+                       cdp_print(p, length, caplen, 8);
                        return (1);
                }
                /* Shared Spanning Tree Protocol - SNAP & ether type 0x010b */
Index: print-ppp.c
===================================================================
RCS file: /cvs/src/usr.sbin/tcpdump/print-ppp.c,v
retrieving revision 1.32
diff -u -p -r1.32 print-ppp.c
--- print-ppp.c 6 Feb 2018 03:41:58 -0000       1.32
+++ print-ppp.c 4 Apr 2019 01:54:37 -0000
@@ -390,6 +390,9 @@ ppp_print(const u_char *p, u_int length)
        case PPP_IPV6CP:
                handle_ipv6cp(p, l);
                break;
+       case PPP_CDP:
+               cdp_print(p, length, l, 0);
+               break;
        }
 }
 

Reply via email to