]> The Tcpdump Group git mirrors - tcpdump/blobdiff - print-hsrp.c
add support for AS-PIC cookies
[tcpdump] / print-hsrp.c
index a421eab79c833baf2872d81c11ff6105727fd0e1..21ec05404e112fc3bcb82a02fe7d24bc3f4dce48 100644 (file)
@@ -30,8 +30,8 @@
 /* Cisco Hot Standby Router Protocol (HSRP). */
 
 #ifndef lint
-static const char rcsid[] =
-    "@(#) $Header: /tcpdump/master/tcpdump/print-hsrp.c,v 1.5 2002-08-01 08:53:08 risso Exp $";
+static const char rcsid[] _U_ =
+    "@(#) $Header: /tcpdump/master/tcpdump/print-hsrp.c,v 1.9.2.1 2005-05-06 07:57:17 guy Exp $";
 #endif
 
 #ifdef HAVE_CONFIG_H
@@ -85,20 +85,20 @@ static struct tok states[] = {
 
 /* HSRP protocol header. */
 struct hsrp {
-       u_char          hsrp_version;
-       u_char          hsrp_op_code;
-       u_char          hsrp_state;
-       u_char          hsrp_hellotime;
-       u_char          hsrp_holdtime;
-       u_char          hsrp_priority;
-       u_char          hsrp_group;
-       u_char          hsrp_reserved;
-       u_char          hsrp_authdata[HSRP_AUTH_SIZE];
+       u_int8_t        hsrp_version;
+       u_int8_t        hsrp_op_code;
+       u_int8_t        hsrp_state;
+       u_int8_t        hsrp_hellotime;
+       u_int8_t        hsrp_holdtime;
+       u_int8_t        hsrp_priority;
+       u_int8_t        hsrp_group;
+       u_int8_t        hsrp_reserved;
+       u_int8_t        hsrp_authdata[HSRP_AUTH_SIZE];
        struct in_addr  hsrp_virtaddr;
 };
 
 void
-hsrp_print(register const u_char *bp, register u_int len)
+hsrp_print(register const u_int8_t *bp, register u_int len)
 {
        struct hsrp *hp = (struct hsrp *) bp;
 
@@ -127,7 +127,11 @@ hsrp_print(register const u_char *bp, register u_int len)
                relts_print(hp->hsrp_holdtime);
                printf(" priority=%d", hp->hsrp_priority);
                printf(" auth=\"");
-               fn_printn(hp->hsrp_authdata, sizeof(hp->hsrp_authdata), NULL);
+               if (fn_printn(hp->hsrp_authdata, sizeof(hp->hsrp_authdata),
+                   snapend)) {
+                       printf("\"");
+                       goto trunc;
+               }
                printf("\"");
        }
        return;