summaryrefslogtreecommitdiffstats
path: root/sysdep/unix
diff options
context:
space:
mode:
authorMartin Mares <mj@ucw.cz>1999-03-29 22:14:00 +0200
committerMartin Mares <mj@ucw.cz>1999-03-29 22:14:00 +0200
commit3f2a21fd348e49cf3ca98750b14e14dd04b3209b (patch)
tree30a95a48390bbfb747483810fe1ba00c1716daeb /sysdep/unix
parent6c02d83f4d225abc03f99fb80299f1ba10ac174a (diff)
downloadbird-3f2a21fd348e49cf3ca98750b14e14dd04b3209b.tar
bird-3f2a21fd348e49cf3ca98750b14e14dd04b3209b.zip
Don't try to delete interface routes on CONFIG_AUTO_ROUTES systems.
Diffstat (limited to 'sysdep/unix')
-rw-r--r--sysdep/unix/krt.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/sysdep/unix/krt.c b/sysdep/unix/krt.c
index 8a3db3f..096b9da 100644
--- a/sysdep/unix/krt.c
+++ b/sysdep/unix/krt.c
@@ -178,7 +178,14 @@ krt_got_route(struct krt_proto *p, rte *e)
if (old = net->routes)
{
if (!krt_capable(old))
- verdict = krt_capable(e) ? KRF_DELETE : KRF_SEEN;
+ {
+#ifdef CONFIG_AUTO_ROUTES
+ if (old->attrs->source == RTS_DEVICE)
+ verdict = KRF_SEEN;
+ else
+#endif
+ verdict = krt_capable(e) ? KRF_DELETE : KRF_SEEN;
+ }
else if (krt_uptodate(e, net->routes))
verdict = KRF_SEEN;
else