From 900b8c5802c0afe3925ea4105c98640a85812fc0 Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Sat, 13 May 2017 23:16:03 -0400 Subject: [PATCH] babeld: Get main to work correctly Get main to init up in the libfrr paradigm. Signed-off-by: Donald Sharp --- babeld/babel_main.c | 31 +++++++++++-------------------- 1 file changed, 11 insertions(+), 20 deletions(-) diff --git a/babeld/babel_main.c b/babeld/babel_main.c index 7fd620e981..472bad849b 100644 --- a/babeld/babel_main.c +++ b/babeld/babel_main.c @@ -46,8 +46,6 @@ THE SOFTWARE. #include "resend.h" #include "babel_zebra.h" - -static void babel_init (int argc, char **argv); static void babel_fail(void); static void babel_init_random(void); static void babel_replace_by_null(int fd); @@ -85,6 +83,7 @@ static zebra_capabilities_t _caps_p [] = ZCAP_NET_RAW, ZCAP_BIND }; + static struct zebra_privs_t babeld_privs = { #if defined(FRR_USER) @@ -97,7 +96,7 @@ static struct zebra_privs_t babeld_privs = .vty_group = VTY_GROUP, #endif .caps_p = _caps_p, - .cap_num_p = 2, + .cap_num_p = array_size(_caps_p), .cap_num_i = 0 }; @@ -149,23 +148,10 @@ FRR_DAEMON_INFO(babeld, BABELD, int main(int argc, char **argv) { - struct thread thread; - /* and print banner too */ - babel_init(argc, argv); - while (thread_fetch (master, &thread)) { - thread_call (&thread); - } - return 0; -} - -/* make initialisations witch don't need infos about kernel(interfaces, etc.) */ -static void -babel_init(int argc, char **argv) -{ - int rc; + int rc; - frr_preinit (&babeld_di, argc, argv); - frr_opt_add ("", longopts, ""); + frr_preinit (&babeld_di, argc, argv); + frr_opt_add ("", longopts, ""); babel_init_random(); @@ -193,7 +179,7 @@ babel_init(int argc, char **argv) } /* create the threads handler */ - master = thread_master_create (); + master = frr_init (); /* Library inits. */ zprivs_init (&babeld_privs); @@ -222,6 +208,11 @@ babel_init(int argc, char **argv) schedule_neighbours_check(5000, 1); zlog_notice ("BABELd %s starting: vty@%d", BABEL_VERSION, babel_vty_port); + + frr_config_fork(); + frr_run(master); + + return 0; } static void -- 2.39.5