diff options
author | Ruslan Ermilov <ru@FreeBSD.org> | 2001-06-29 09:08:24 +0000 |
---|---|---|
committer | Ruslan Ermilov <ru@FreeBSD.org> | 2001-06-29 09:08:24 +0000 |
commit | 1093cc3199dfc5ab96dc7481517530b936091447 (patch) | |
tree | c621cd19dc91813a460c34331a8882637398609f /usr.bin/netstat/route.c | |
parent | 8f309b9151d7c2f652da4e3124e3d3c0dca04d54 (diff) | |
download | src-1093cc3199dfc5ab96dc7481517530b936091447.tar.gz src-1093cc3199dfc5ab96dc7481517530b936091447.zip |
Make `rttrash' variable (#routes not in table but not freed) visible
through ``netstat -rs''.
Notes
Notes:
svn path=/head/; revision=78958
Diffstat (limited to 'usr.bin/netstat/route.c')
-rw-r--r-- | usr.bin/netstat/route.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/usr.bin/netstat/route.c b/usr.bin/netstat/route.c index 28315390c8bc..4390a2e4f920 100644 --- a/usr.bin/netstat/route.c +++ b/usr.bin/netstat/route.c @@ -851,15 +851,21 @@ routename6(struct sockaddr_in6 *sa6) * Print routing statistics */ void -rt_stats(u_long off) +rt_stats(u_long rtsaddr, u_long rttaddr) { struct rtstat rtstat; + int rttrash; - if (off == 0) { + if (rtsaddr == 0) { printf("rtstat: symbol not in namelist\n"); return; } - kread(off, (char *)&rtstat, sizeof (rtstat)); + if (rttaddr == 0) { + printf("rttrash: symbol not in namelist\n"); + return; + } + kread(rtsaddr, (char *)&rtstat, sizeof (rtstat)); + kread(rttaddr, (char *)&rttrash, sizeof (rttrash)); printf("routing:\n"); #define p(f, m) if (rtstat.f || sflag <= 1) \ @@ -871,6 +877,10 @@ rt_stats(u_long off) p(rts_unreach, "\t%u destination%s found unreachable\n"); p(rts_wildcard, "\t%u use%s of a wildcard route\n"); #undef p + + if (rttrash || sflag <= 1) + printf("\t%u route%s not in table but not freed\n", + rttrash, plural(rttrash)); } char * |