diff options
author | Martin Mares <mj@ucw.cz> | 1999-03-29 22:14:00 +0200 |
---|---|---|
committer | Martin Mares <mj@ucw.cz> | 1999-03-29 22:14:00 +0200 |
commit | 3f2a21fd348e49cf3ca98750b14e14dd04b3209b (patch) | |
tree | 30a95a48390bbfb747483810fe1ba00c1716daeb /sysdep | |
parent | 6c02d83f4d225abc03f99fb80299f1ba10ac174a (diff) | |
download | bird-3f2a21fd348e49cf3ca98750b14e14dd04b3209b.tar bird-3f2a21fd348e49cf3ca98750b14e14dd04b3209b.zip |
Don't try to delete interface routes on CONFIG_AUTO_ROUTES systems.
Diffstat (limited to 'sysdep')
-rw-r--r-- | sysdep/unix/krt.c | 9 |
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 |