optimization for normal masks requires keeping ptr
authorKeith Sklower <sklower@ucbvax.Berkeley.EDU>
Tue, 1 Nov 1994 05:46:58 +0000 (21:46 -0800)
committerKeith Sklower <sklower@ucbvax.Berkeley.EDU>
Tue, 1 Nov 1994 05:46:58 +0000 (21:46 -0800)
to associated leaf, rather than just the mask itself

SCCS-vsn: usr.bin/netstat/route.c 8.4

usr/src/usr.bin/netstat/route.c

index 13aec77..0a8286c 100644 (file)
@@ -242,7 +242,14 @@ p_rtnode()
                sprintf(nbuf, " %d refs, ", rmask.rm_refs);
                printf(" mk = %8.8x {(%d),%s",
                        rm, -1 - rmask.rm_b, rmask.rm_refs ? nbuf : " ");
                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);
+               if (rmask.rm_flags & RNF_NORMAL) {
+                       struct radix_node rnode_aux;
+                       printf(nbuf, " <normal>, ");
+                       kget(rmask.rm_leaf, rnode_aux);
+                       p_sockaddr(
+                        kgetsa((struct sockaddr *)rnode_aux.rn_mask), 0, -1);
+               } else
+                   p_sockaddr(kgetsa((struct sockaddr *)rmask.rm_mask), 0, -1);
                putchar('}');
                if (rm = rmask.rm_mklist)
                        printf(" ->");
                putchar('}');
                if (rm = rmask.rm_mklist)
                        printf(" ->");