summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Mares <mj@ucw.cz>2000-05-16 13:36:38 +0000
committerMartin Mares <mj@ucw.cz>2000-05-16 13:36:38 +0000
commitf990fc61e0dd13ae90c9bbff811736dfd52988b0 (patch)
tree969f9f03d3e449ca62d8ec68d55b4838b4040208
parentc5a06f65ee20328b8d0f2276287e223e4fd4a595 (diff)
When in persist mode, don't delete routes from kernel tables even if
they cease to exist in our routing tables due to protocols having shut down.
-rw-r--r--TODO10
-rw-r--r--sysdep/unix/krt.c2
2 files changed, 4 insertions, 8 deletions
diff --git a/TODO b/TODO
index 64a0628d..c8fb0d1a 100644
--- a/TODO
+++ b/TODO
@@ -1,15 +1,7 @@
Core
~~~~
-- configure: default CFLAGS?
-
-- filters: deletion of mandatory attributes?
-- filters: user defined attributes?
-- filters: arithmetics and define'd symbols
-
- kernel: persistent mode
-- cli: show tables?
-
- client: Ctrl-R eats one more enter
- client: paging?
- client: data losses on large dumps?
@@ -48,6 +40,7 @@ Various ideas
- netlink: realms
- netlink: import Linux route attributes to our rta's, so that they can be filtered?
- config: executable config files
+- filters: user defined attributes?
- client: access control
- io: use poll if available
- IPv6 router advertisements
@@ -59,6 +52,7 @@ Various ideas
- generate default route if any working BGP connection exists (aggregate engine again?)
- generate default route to IGP's (aggregate engine yet another time?)
- look at RFC 2386 (QoS-based routing)
+- cli: show tables?
OSPF
diff --git a/sysdep/unix/krt.c b/sysdep/unix/krt.c
index 74ab2239..9bc29808 100644
--- a/sysdep/unix/krt.c
+++ b/sysdep/unix/krt.c
@@ -667,6 +667,8 @@ krt_notify(struct proto *P, net *net, rte *new, rte *old, struct ea_list *attrs)
{
struct krt_proto *p = (struct krt_proto *) P;
+ if (shutting_down && KRT_CF->persist)
+ return;
if (new && (!krt_capable(new) || new->attrs->source == RTS_INHERIT))
new = NULL;
if (!(net->n.flags & KRF_INSTALLED))