summaryrefslogtreecommitdiffstats
path: root/ospf6d/ospf6_main.c
diff options
context:
space:
mode:
authorChristian Franke <chris@opensourcerouting.org>2013-03-08 21:47:35 +0100
committerDavid Lamparter <equinox@opensourcerouting.org>2014-03-18 08:44:05 +0100
commitd9628728e0924ae13ef6e8f8a67a2c9802745184 (patch)
treeaf4cee6c7018580655cb53a0900471128cc0a8bb /ospf6d/ospf6_main.c
parent37531a7ec380554b18c004bcae9f5a070385d132 (diff)
downloadquagga-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.c10
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 ();