diff options
| author | Donald Sharp <sharpd@cumulusnetworks.com> | 2017-05-13 23:16:03 -0400 | 
|---|---|---|
| committer | Donald Sharp <sharpd@cumulusnetworks.com> | 2017-05-13 23:16:03 -0400 | 
| commit | 900b8c5802c0afe3925ea4105c98640a85812fc0 (patch) | |
| tree | 32777f497bfa3ac4bc39d4d191c98913e6293a9a /babeld/babel_main.c | |
| parent | 2579b2c1443403bed7b5ccf5086a4e3be834495f (diff) | |
babeld: Get main to work correctly
Get main to init up in the libfrr paradigm.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Diffstat (limited to 'babeld/babel_main.c')
| -rw-r--r-- | babeld/babel_main.c | 31 | 
1 files 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  | 
