From 857b5446497505f582417e4a5ada029712743cbc Mon Sep 17 00:00:00 2001 From: David Lamparter Date: Sun, 13 Nov 2016 16:23:29 +0900 Subject: [PATCH] *: centralize more into frr_init() Move CLI/VTY/Memory accounting init into frr_* Signed-off-by: David Lamparter --- bgpd/bgp_main.c | 3 --- isisd/isis_main.c | 5 +---- lib/libfrr.c | 8 ++++++++ lib/libfrr.h | 1 + nhrpd/nhrp_main.c | 3 --- ospf6d/ospf6_main.c | 3 --- ospfd/ospf_main.c | 3 --- pimd/pim_main.c | 3 --- ripd/rip_main.c | 3 --- ripngd/ripng_main.c | 3 --- watchfrr/watchfrr.c | 5 +---- zebra/main.c | 6 +----- 12 files changed, 12 insertions(+), 34 deletions(-) diff --git a/bgpd/bgp_main.c b/bgpd/bgp_main.c index 26605be547..fec7ed44fe 100644 --- a/bgpd/bgp_main.c +++ b/bgpd/bgp_main.c @@ -456,9 +456,6 @@ main (int argc, char **argv) bm->address = bgp_address; /* Initializations. */ - cmd_init (1); - vty_init (bm->master); - memory_init (); bgp_vrf_init (); /* BGP related initialization. */ diff --git a/isisd/isis_main.c b/isisd/isis_main.c index 453e77e10f..268e473fc9 100644 --- a/isisd/isis_main.c +++ b/isisd/isis_main.c @@ -272,16 +272,13 @@ main (int argc, char **argv, char **envp) } } + vty_config_lockless (); /* thread master */ master = frr_init (); /* * initializations */ - cmd_init (1); - vty_config_lockless (); - vty_init (master); - memory_init (); access_list_init(); vrf_init (); prefix_list_init(); diff --git a/lib/libfrr.c b/lib/libfrr.c index 6d55223f55..216ba787c9 100644 --- a/lib/libfrr.c +++ b/lib/libfrr.c @@ -25,6 +25,7 @@ #include "vty.h" #include "command.h" #include "version.h" +#include "memory_vty.h" static char comb_optstr[256]; static struct option comb_lo[64]; @@ -242,6 +243,13 @@ struct thread_master *frr_init(void) master = thread_master_create(); signal_init(master, di->n_signals, di->signals); + if (di->flags & FRR_LIMITED_CLI) + cmd_init(-1); + else + cmd_init(1); + vty_init(master); + memory_init(); + return master; } diff --git a/lib/libfrr.h b/lib/libfrr.h index 42c4e548cc..97526dde5c 100644 --- a/lib/libfrr.h +++ b/lib/libfrr.h @@ -29,6 +29,7 @@ #define FRR_NO_PRIVSEP (1 << 0) #define FRR_NO_TCPVTY (1 << 1) +#define FRR_LIMITED_CLI (1 << 2) struct frr_daemon_info { unsigned flags; diff --git a/nhrpd/nhrp_main.c b/nhrpd/nhrp_main.c index b2edea009c..175b3dfbec 100644 --- a/nhrpd/nhrp_main.c +++ b/nhrpd/nhrp_main.c @@ -158,9 +158,6 @@ int main(int argc, char **argv) /* Library inits. */ master = frr_init(); - cmd_init(1); - vty_init(master); - memory_init(); nhrp_interface_init(); vrf_init(); resolver_init(); diff --git a/ospf6d/ospf6_main.c b/ospf6d/ospf6_main.c index f7df47cacb..6edce7c30e 100644 --- a/ospf6d/ospf6_main.c +++ b/ospf6d/ospf6_main.c @@ -260,9 +260,6 @@ main (int argc, char *argv[], char *envp[]) /* thread master */ master = frr_init (); - cmd_init (1); - vty_init (master); - memory_init (); vrf_init (); access_list_init (); prefix_list_init (); diff --git a/ospfd/ospf_main.c b/ospfd/ospf_main.c index c119f4e392..7791634647 100644 --- a/ospfd/ospf_main.c +++ b/ospfd/ospf_main.c @@ -259,10 +259,7 @@ main (int argc, char **argv) master = om->master; /* Library inits. */ - cmd_init (1); debug_init (); - vty_init (master); - memory_init (); vrf_init (); access_list_init (); diff --git a/pimd/pim_main.c b/pimd/pim_main.c index b8212542ab..9136b08e9b 100644 --- a/pimd/pim_main.c +++ b/pimd/pim_main.c @@ -150,9 +150,6 @@ int main(int argc, char** argv, char** envp) { /* * Initializations */ - cmd_init(1); - vty_init(master); - memory_init(); vrf_init (); access_list_init(); prefix_list_init (); diff --git a/ripd/rip_main.c b/ripd/rip_main.c index 2f497f0022..2cf88e676f 100644 --- a/ripd/rip_main.c +++ b/ripd/rip_main.c @@ -216,9 +216,6 @@ main (int argc, char **argv) master = frr_init (); /* Library initialization. */ - cmd_init (1); - vty_init (master); - memory_init (); keychain_init (); vrf_init (); diff --git a/ripngd/ripng_main.c b/ripngd/ripng_main.c index b081da2333..79ea91297d 100644 --- a/ripngd/ripng_main.c +++ b/ripngd/ripng_main.c @@ -212,9 +212,6 @@ main (int argc, char **argv) master = frr_init (); /* Library inits. */ - cmd_init (1); - vty_init (master); - memory_init (); vrf_init (); /* RIPngd inits. */ diff --git a/watchfrr/watchfrr.c b/watchfrr/watchfrr.c index f6ea77b605..a09ec5225e 100644 --- a/watchfrr/watchfrr.c +++ b/watchfrr/watchfrr.c @@ -1022,7 +1022,7 @@ static struct quagga_signal_t watchfrr_signals[] = { }; FRR_DAEMON_INFO(watchfrr, WATCHFRR, - .flags = FRR_NO_PRIVSEP | FRR_NO_TCPVTY, + .flags = FRR_NO_PRIVSEP | FRR_NO_TCPVTY | FRR_LIMITED_CLI, .printhelp = printhelp, .copyright = "Copyright 2004 Andrew J. Schorr", @@ -1288,9 +1288,6 @@ int main(int argc, char **argv) } else zlog_set_level(NULL, ZLOG_DEST_STDOUT, MIN(gs.loglevel, LOG_DEBUG)); - cmd_init(-1); - memory_init(); - vty_init(master); watchfrr_vty_init(); frr_vty_serv(WATCHFRR_VTYSH_PATH); diff --git a/zebra/main.c b/zebra/main.c index 06a260f370..92fe5f4e64 100644 --- a/zebra/main.c +++ b/zebra/main.c @@ -316,12 +316,8 @@ main (int argc, char **argv) } } - zebrad.master = frr_init(); - - cmd_init (1); vty_config_lockless (); - vty_init (zebrad.master); - memory_init (); + zebrad.master = frr_init(); /* Zebra related initialize. */ zebra_init (); -- 2.39.5