From 603c61656fe2a758aae466a801baccbe63697f67 Mon Sep 17 00:00:00 2001 From: David Lamparter Date: Sun, 16 Jan 2022 15:25:31 +0100 Subject: [PATCH] lib: add frr_early_init hook To bring up bits that use thread_master before other init happens. Signed-off-by: David Lamparter --- lib/libfrr.c | 2 ++ lib/libfrr.h | 1 + 2 files changed, 3 insertions(+) diff --git a/lib/libfrr.c b/lib/libfrr.c index 1610ba4e7d..77d0d38f32 100644 --- a/lib/libfrr.c +++ b/lib/libfrr.c @@ -46,6 +46,7 @@ #include "frrscript.h" #include "systemd.h" +DEFINE_HOOK(frr_early_init, (struct thread_master * tm), (tm)); DEFINE_HOOK(frr_late_init, (struct thread_master * tm), (tm)); DEFINE_HOOK(frr_config_pre, (struct thread_master * tm), (tm)); DEFINE_HOOK(frr_config_post, (struct thread_master * tm), (tm)); @@ -765,6 +766,7 @@ struct thread_master *frr_init(void) master = thread_master_create(NULL); signal_init(master, di->n_signals, di->signals); + hook_call(frr_early_init, master); #ifdef HAVE_SQLITE3 if (!di->db_file) diff --git a/lib/libfrr.h b/lib/libfrr.h index e0642ef847..65c1df9675 100644 --- a/lib/libfrr.h +++ b/lib/libfrr.h @@ -144,6 +144,7 @@ extern uint32_t frr_get_fd_limit(void); extern bool frr_is_startup_fd(int fd); /* call order of these hooks is as ordered here */ +DECLARE_HOOK(frr_early_init, (struct thread_master * tm), (tm)); DECLARE_HOOK(frr_late_init, (struct thread_master * tm), (tm)); /* fork() happens between late_init and config_pre */ DECLARE_HOOK(frr_config_pre, (struct thread_master * tm), (tm));