uint32_t x;
char srcid[20], dstid[20]; /*fits 32bit*/
+ ndo->ndo_protocol = "sunrpc";
rp = (const struct sunrpc_msg *)bp;
+ ND_TCHECK_SIZE(rp);
if (!ndo->ndo_nflag) {
- snprintf(srcid, sizeof(srcid), "0x%x",
+ nd_snprintf(srcid, sizeof(srcid), "0x%x",
EXTRACT_BE_U_4(rp->rm_xid));
strlcpy(dstid, "sunrpc", sizeof(dstid));
} else {
- snprintf(srcid, sizeof(srcid), "0x%x",
+ nd_snprintf(srcid, sizeof(srcid), "0x%x",
EXTRACT_BE_U_4(rp->rm_xid));
- snprintf(dstid, sizeof(dstid), "0x%x", SUNRPC_PMAPPORT);
+ nd_snprintf(dstid, sizeof(dstid), "0x%x", SUNRPC_PMAPPORT);
}
switch (IP_V((const struct ip *)bp2)) {
case 4:
ip = (const struct ip *)bp2;
ND_PRINT("%s.%s > %s.%s: %u",
- ipaddr_string(ndo, &ip->ip_src), srcid,
- ipaddr_string(ndo, &ip->ip_dst), dstid, length);
+ ipaddr_string(ndo, ip->ip_src), srcid,
+ ipaddr_string(ndo, ip->ip_dst), dstid, length);
break;
case 6:
ip6 = (const struct ip6_hdr *)bp2;
ND_PRINT("%s.%s > %s.%s: %u",
- ip6addr_string(ndo, &ip6->ip6_src), srcid,
- ip6addr_string(ndo, &ip6->ip6_dst), dstid, length);
+ ip6addr_string(ndo, ip6->ip6_src), srcid,
+ ip6addr_string(ndo, ip6->ip6_dst), dstid, length);
break;
default:
ND_PRINT("%s.%s > %s.%s: %u", "?", srcid, "?", dstid, length);
ND_PRINT(".%u", EXTRACT_BE_U_4(rp->rm_call.cb_vers));
break;
}
+ return;
+
+trunc:
+ nd_print_trunc(ndo);
}
static char *
rp = getrpcbynumber(prog);
if (rp == NULL)
#endif
- (void) snprintf(buf, sizeof(buf), "#%u", prog);
+ (void) nd_snprintf(buf, sizeof(buf), "#%u", prog);
#if defined(HAVE_GETRPCBYNUMBER) && defined(HAVE_RPC_RPC_H)
else
strlcpy(buf, rp->r_name, sizeof(buf));