summaryrefslogtreecommitdiff
path: root/lib/libfrr.c
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetworks.com>2017-08-21 07:47:17 -0400
committerGitHub <noreply@github.com>2017-08-21 07:47:17 -0400
commit63b02a77ca13359e136281af9d9edd3b7493b42d (patch)
tree67062f7b98d41b2f6e916141866e6c907126b50e /lib/libfrr.c
parent3c8954852c3e051dea5790dba0ddf535fa221024 (diff)
parent0ed9196b0c196ad1b240a77709d1452a2fa42c80 (diff)
Merge pull request #929 from opensourcerouting/hooks-doc-irdp
hook improvements, more hooks, doc example, IRDP cleanup
Diffstat (limited to 'lib/libfrr.c')
-rw-r--r--lib/libfrr.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/lib/libfrr.c b/lib/libfrr.c
index a5c87e6edc..255f91ec71 100644
--- a/lib/libfrr.c
+++ b/lib/libfrr.c
@@ -37,6 +37,8 @@
#include "network.h"
DEFINE_HOOK(frr_late_init, (struct thread_master * tm), (tm))
+DEFINE_KOOH(frr_early_fini, (), ())
+DEFINE_KOOH(frr_fini, (), ())
const char frr_sysconfdir[] = SYSCONFDIR;
const char frr_vtydir[] = DAEMON_VTY_DIR;
@@ -831,3 +833,22 @@ void frr_run(struct thread_master *master)
while (thread_fetch(master, &thread))
thread_call(&thread);
}
+
+void frr_early_fini(void)
+{
+ hook_call(frr_early_fini);
+}
+
+void frr_fini(void)
+{
+ hook_call(frr_fini);
+
+ /* memory_init -> nothing needed */
+ vty_terminate();
+ cmd_terminate();
+ zprivs_terminate(di->privs);
+ /* signal_init -> nothing needed */
+ thread_master_free(master);
+ closezlog();
+ /* frrmod_init -> nothing needed / hooks */
+}