diff options
author | Christian Franke <chris@opensourcerouting.org> | 2013-03-08 21:47:35 +0100 |
---|---|---|
committer | David Lamparter <equinox@opensourcerouting.org> | 2014-03-18 08:44:05 +0100 |
commit | d9628728e0924ae13ef6e8f8a67a2c9802745184 (patch) | |
tree | af4cee6c7018580655cb53a0900471128cc0a8bb /ospf6d/ospf6_main.c | |
parent | 37531a7ec380554b18c004bcae9f5a070385d132 (diff) | |
download | quagga-d9628728e0924ae13ef6e8f8a67a2c9802745184.tar.bz2 quagga-d9628728e0924ae13ef6e8f8a67a2c9802745184.tar.xz |
ospf6d: improve ordered shutdown
Improve the _disable/_enable infrastructure so it gets into
a more usable shape and make 'no router ospf6' actually work.
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Diffstat (limited to 'ospf6d/ospf6_main.c')
-rw-r--r-- | ospf6d/ospf6_main.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/ospf6d/ospf6_main.c b/ospf6d/ospf6_main.c index 17d7654e..e9919713 100644 --- a/ospf6d/ospf6_main.c +++ b/ospf6d/ospf6_main.c @@ -41,6 +41,8 @@ #include "ospf6_message.h" #include "ospf6_asbr.h" #include "ospf6_lsa.h" +#include "ospf6_interface.h" +#include "ospf6_zebra.h" /* Default configuration file name for ospf6d. */ #define OSPF6_DEFAULT_CONFIG "ospf6d.conf" @@ -134,12 +136,16 @@ Report bugs to %s\n", progname, ZEBRA_BUG_ADDRESS); static void __attribute__ ((noreturn)) ospf6_exit (int status) { - extern struct ospf6 *ospf6; - extern struct zclient *zclient; + struct listnode *node; + struct interface *ifp; if (ospf6) ospf6_delete (ospf6); + for (ALL_LIST_ELEMENTS_RO(iflist, node, ifp)) + if (ifp->info != NULL) + ospf6_interface_delete(ifp->info); + ospf6_message_terminate (); ospf6_asbr_terminate (); ospf6_lsa_terminate (); |