/* Cisco Hot Standby Router Protocol (HSRP). */
#ifndef lint
-static const char rcsid[] =
- "@(#) $Header: /tcpdump/master/tcpdump/print-hsrp.c,v 1.4 2002-06-11 17:08:47 itojun 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
#include "config.h"
#endif
-#include <sys/types.h>
+#include <tcpdump-stdinc.h>
#include <stdio.h>
-#include <netinet/in.h>
#include "interface.h"
#include "addrtoname.h"
/* 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;
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;