On Mon, Apr 30, 2001 at 11:29:11AM +1200, [EMAIL PROTECTED] wrote:
> 
> The output of `netstat -r' for 4.3-RELEASE onwards doesn't appear
> to include info on hosts on the local network that it has recently
> communicated with.
> 
This is the documented behavior.  ``netstat -r'' does not anymore show
cloned routes by default unless -a is given, see manpage for details.
Previously, only protocol-cloned routes were hidden from a normal
output.  Now both protocol-cloned and cloned routes are not shown.
There was the reason for this change in -CURRENT, but for -STABLE it
was certainly premature.  I don't have an idea why DES did this.  DES?

I have a question for Garrett.  Was the original idea behind -a flag is
to hide protocol-cloned routes only but not RTF_CLONING generated routes,
or it was simply caused by the bug that `rt_parent' was not set for
routes generated from RTF_CLONING parent, as documented in rtentry(9)?

If the behavior of netstat(1) is to be restored, the following patch
will DTRT:

Index: route.c
===================================================================
RCS file: /home/ncvs/src/usr.bin/netstat/route.c,v
retrieving revision 1.41.2.5
diff -u -p -r1.41.2.5 route.c
--- route.c     2001/03/22 13:48:44     1.41.2.5
+++ route.c     2001/05/04 15:02:48
@@ -582,16 +582,20 @@ p_rtentry(rt)
        register struct rtentry *rt;
 {
        static struct ifnet ifnet, *lastif;
+       struct rtentry parent;
        static char name[16];
        static char prettyname[9];
        struct sockaddr *sa;
        sa_u addr, mask;
 
        /*
-        * Don't print cloned routes unless -a.
+        * Don't print protocol-cloned routes unless -a.
         */
-       if (rt->rt_flags & RTF_WASCLONED && !aflag)
-               return;
+       if (rt->rt_flags & RTF_WASCLONED && !aflag) {
+               kget(rt->rt_parent, parent);
+               if (parent.rt_flags & RTF_PRCLONING)
+                       return;
+       }
 
        bzero(&addr, sizeof(addr));
        if ((sa = kgetsa(rt_key(rt))))



Cheers,
-- 
Ruslan Ermilov          Oracle Developer/DBA,
[EMAIL PROTECTED]           Sunbay Software AG,
[EMAIL PROTECTED]          FreeBSD committer,
+380.652.512.251        Simferopol, Ukraine

http://www.FreeBSD.org  The Power To Serve
http://www.oracle.com   Enabling The Information Age

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-net" in the body of the message

Reply via email to