+char nbuf[20];
+
+p_rtnode()
+{
+
+ struct radix_mask *rm = rnode.rn_mklist;
+ if (rnode.rn_b < 0) {
+ if (rnode.rn_mask) {
+ printf("\t mask ");
+ p_sockaddr(kgetsa((struct sockaddr *)rnode.rn_mask),
+ 0, -1);
+ } else if (rm == 0)
+ return;
+ } else {
+ sprintf(nbuf, "(%d)", rnode.rn_b);
+ printf("%6.6s %8.8x : %8.8x", nbuf, rnode.rn_l, rnode.rn_r);
+ }
+ while (rm) {
+ kget(rm, rmask);
+ sprintf(nbuf, " %d refs, ", rmask.rm_refs);
+ printf(" mk = %8.8x {(%d),%s",
+ rm, -1 - rmask.rm_b, rmask.rm_refs ? nbuf : " ");
+ p_sockaddr(kgetsa((struct sockaddr *)rmask.rm_mask), 0, -1);
+ putchar('}');
+ if (rm = rmask.rm_mklist)
+ printf(" ->");
+ }
+ putchar('\n');
+}