- 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)));
+ ND_TCHECK(*tr);
+ if (len < 8 + sizeof (struct tr_query)) {
+ ND_PRINT((ndo, " [invalid len %d]", len));
+ return;
+ }
+ ND_PRINT((ndo, "mresp %lu: %s to %s reply-to %s",
+ (u_long)TR_GETQID(EXTRACT_32BITS(&tr->tr_rttlqid)),
+ ipaddr_string(ndo, &tr->tr_src), ipaddr_string(ndo, &tr->tr_dst),
+ ipaddr_string(ndo, &tr->tr_raddr)));
+ if (IN_CLASSD(EXTRACT_32BITS(&tr->tr_raddr)))
+ ND_PRINT((ndo, " with-ttl %d", TR_GETTTL(EXTRACT_32BITS(&tr->tr_rttlqid))));
+ return;
+trunc:
+ ND_PRINT((ndo, "%s", tstr));