diff options
author | ru <ru@FreeBSD.org> | 2001-06-08 12:44:25 +0000 |
---|---|---|
committer | ru <ru@FreeBSD.org> | 2001-06-08 12:44:25 +0000 |
commit | 9079964eda336913df098484d0efe6facaeb8f6f (patch) | |
tree | 2dead7ccb506506de1f729defe4ad7df81c5b4fe /sbin/route/route.c | |
parent | f432beaf0e3087182ac0920be592ebe3016fa34b (diff) | |
download | FreeBSD-src-9079964eda336913df098484d0efe6facaeb8f6f.zip FreeBSD-src-9079964eda336913df098484d0efe6facaeb8f6f.tar.gz |
When changing an indirect route, kernel routing code allocates
a route to the gateway and caches it in the route structure.
It may happen (if the routing table is screwed) that the gateway
route is the same route as the one being modified, in which case
a kernel reports EDQUOT. Be more verbose about this:
# route add -net 10 192.168.4.65
add net 10: gateway 192.168.4.65
# netstat -rn -finet
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.4.65 UGSc 1 7 rl0
10 192.168.4.65 UGSc 0 0 rl0
127.0.0.1 127.0.0.1 UH 0 178 lo0
192.168.4 link#1 UC 2 0 rl0 =>
192.168.4.65 0:d0:b7:16:9c:c6 UHLW 2 0 rl0 1123
Before:
# route change -net 10 10.0.0.1
route: writing to routing socket: Disc quota exceeded
change net 10: gateway 10.0.0.1: Disc quota exceeded
After:
# ./route change -net 10 10.0.0.1
route: writing to routing socket: Disc quota exceeded
change net 10: gateway 10.0.0.1: gateway uses the same route
PR: bin/1093, misc/26833
Diffstat (limited to 'sbin/route/route.c')
-rw-r--r-- | sbin/route/route.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sbin/route/route.c b/sbin/route/route.c index 467dbe1..2b7d246 100644 --- a/sbin/route/route.c +++ b/sbin/route/route.c @@ -741,6 +741,9 @@ newroute(argc, argv) case ENOBUFS: err = "routing table overflow"; break; + case EDQUOT: /* handle recursion avoidance in rt_setgate() */ + err = "gateway uses the same route"; + break; default: err = strerror(oerrno); break; |