Return to BSD News archive
Path: sserve!newshost.anu.edu.au!munnari.oz.au!goanna!escargot!otto!davidb
From: davidb@otto.bf.rmit.oz.au (David Burren [Athos])
Newsgroups: comp.os.386bsd.bugs
Subject: Patch to netstat to clean up output
Keywords: patch
Message-ID: <davidb.736697833@otto>
Date: 6 May 93 14:17:13 GMT
Organization: Royal Melbourne Institute of Technology
Lines: 89
NNTP-Posting-Host: otto.bf.rmit.oz.au
The following patch to /usr/src/usr.bin/netstat/route.c fixes what
I saw as two bugs in `netstat -r`:
1. The output of "Route Tree for Protocol Family" specified the
PF as an int rather than a name.
My fix for this was a quick hack.
2. The gateways in the routing table were always reported as
numeric addresses, even when "-n" was ommitted.
The fix for this is simple and clean.
This is another of the patches I made some time ago and have
dug up in my move to NetBSD. Looking at it now, my definition
of p_proto() was ugly, but can anyone suggest a cleaner fix?
Cheers!
__
David Burren
davidb@otto.bf.rmit.oz.au (guest acct)
+61-3-634-3635
*** route.c Thu May 6 22:50:16 1993
--- route.c.orig Mon Mar 22 04:16:51 1993
***************
*** 85,109 ****
};
/*
- * Print address family.
- */
- void
- p_proto(proto)
- int proto;
- {
- switch (proto)
- {
- case AF_INET:
- printf("inet");
- break;
- default:
- printf("%d", proto);
- break;
- }
- }
-
-
- /*
* Print routing tables.
*/
routepr(hostaddr, netaddr, hashsizeaddr, treeaddr)
--- 85,90 ----
***************
*** 188,196 ****
p_tree(head.rnh_treetop);
}
} else if (af == AF_UNSPEC || af == head.rnh_af) {
! printf("\nRoute Tree for Protocol Family ");
! p_proto(head.rnh_af);
! printf(":\n");
do_rtent = 1;
p_tree(head.rnh_treetop);
}
--- 169,176 ----
p_tree(head.rnh_treetop);
}
} else if (af == AF_UNSPEC || af == head.rnh_af) {
! printf("\nRoute Tree for Protocol Family %d:\n",
! head.rnh_af);
do_rtent = 1;
p_tree(head.rnh_treetop);
}
***************
*** 398,404 ****
struct ifnet ifnet;
p_sockaddr(kgetsa(rt_key(rt)), rt->rt_flags, 16);
! p_sockaddr(kgetsa(rt->rt_gateway), RTF_HOST, 18);
p_flags(rt->rt_flags, "%-6.6s ");
printf("%6d %8d ", rt->rt_refcnt, rt->rt_use);
if (rt->rt_ifp == 0) {
--- 378,384 ----
struct ifnet ifnet;
p_sockaddr(kgetsa(rt_key(rt)), rt->rt_flags, 16);
! p_sockaddr(kgetsa(rt->rt_gateway), 0, 18);
p_flags(rt->rt_flags, "%-6.6s ");
printf("%6d %8d ", rt->rt_refcnt, rt->rt_use);
if (rt->rt_ifp == 0) {