- TCHECK(bp[2]);
- printf("vrid=%d prio=%d", bp[1], bp[2]);
- TCHECK(bp[5]);
- auth_type = bp[4];
- printf(" authtype=%s", tok2str(auth2str, NULL, auth_type));
- printf(" intvl=%d", bp[5]);
- if (vflag) {
- int naddrs = bp[3];
- int i;
+ ND_TCHECK_1(bp + 2);
+ ND_PRINT(", vrid %u, prio %u", EXTRACT_U_1(bp + 1), EXTRACT_U_1(bp + 2));
+ ND_TCHECK_1(bp + 5);
+
+ if (version == 2) {
+ auth_type = EXTRACT_U_1(bp + 4);
+ ND_PRINT(", authtype %s", tok2str(auth2str, NULL, auth_type));
+ ND_PRINT(", intvl %us, length %u", EXTRACT_U_1(bp + 5), len);
+ } else { /* version == 3 */
+ uint16_t intvl = (EXTRACT_U_1(bp + 4) & 0x0f) << 8 | EXTRACT_U_1(bp + 5);
+ ND_PRINT(", intvl %ucs, length %u", intvl, len);
+ }
+
+ if (ndo->ndo_vflag) {
+ u_int naddrs = EXTRACT_U_1(bp + 3);
+ u_int i;