- printf("mtrace %lu: %s to %s reply-to %s",
- (u_long)TR_GETQID(ntohl(tr->tr_rttlqid)),
- ipaddr_string(&tr->tr_src), ipaddr_string(&tr->tr_dst),
- ipaddr_string(&tr->tr_raddr));
- if (IN_CLASSD(ntohl(tr->tr_raddr)))
- printf(" with-ttl %d", TR_GETTTL(ntohl(tr->tr_rttlqid)));
-}
-
-static void
-print_mresp(register const u_char *bp, register u_int len)
-{
- register const struct tr_query *tr = (const struct tr_query *)(bp + 8);
-
- printf("mresp %lu: %s to %s reply-to %s",
- (u_long)TR_GETQID(ntohl(tr->tr_rttlqid)),
- ipaddr_string(&tr->tr_src), ipaddr_string(&tr->tr_dst),
- ipaddr_string(&tr->tr_raddr));
- if (IN_CLASSD(ntohl(tr->tr_raddr)))
- printf(" with-ttl %d", TR_GETTTL(ntohl(tr->tr_rttlqid)));
+ if (len < 8 + sizeof (struct tr_query)) {
+ ND_PRINT(" [invalid len %u]", len);
+ return;
+ }
+ ND_PRINT("%s %u: %s to %s reply-to %s",
+ typename,
+ GET_BE_U_3(tr->tr_qid),
+ GET_IPADDR_STRING(tr->tr_src), GET_IPADDR_STRING(tr->tr_dst),
+ GET_IPADDR_STRING(tr->tr_raddr));
+ if (IN_CLASSD(GET_BE_U_4(tr->tr_raddr)))
+ ND_PRINT(" with-ttl %u", GET_U_1(tr->tr_rttl));