From f990fc61e0dd13ae90c9bbff811736dfd52988b0 Mon Sep 17 00:00:00 2001 From: Martin Mares Date: Tue, 16 May 2000 13:36:38 +0000 Subject: 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. --- TODO | 10 ++-------- sysdep/unix/krt.c | 2 ++ 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/TODO b/TODO index 64a0628..c8fb0d1 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 74ab223..9bc2980 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)) -- cgit v1.2.3