diff options
Diffstat (limited to 'mgmtd')
| -rw-r--r-- | mgmtd/mgmt.h | 5 | ||||
| -rw-r--r-- | mgmtd/mgmt_main.c | 22 | ||||
| -rw-r--r-- | mgmtd/mgmt_vty.c | 19 | 
3 files changed, 29 insertions, 17 deletions
diff --git a/mgmtd/mgmt.h b/mgmtd/mgmt.h index 603296bb38..f52d478bc2 100644 --- a/mgmtd/mgmt.h +++ b/mgmtd/mgmt.h @@ -68,8 +68,6 @@ struct mgmt_master {  };  extern struct mgmt_master *mm; -extern char const *const mgmt_daemons[]; -extern uint mgmt_daemons_count;  /* Inline functions */  static inline unsigned long timeval_elapsed(struct timeval a, struct timeval b) @@ -102,7 +100,8 @@ extern void mgmt_reset(void);  extern time_t mgmt_clock(void);  extern int mgmt_config_write(struct vty *vty); - +extern struct vty *mgmt_vty_read_config(const char *config_file, +					char *config_default_dir);  extern void mgmt_master_init(struct event_loop *master, const int buffer_size);  extern void mgmt_init(void); diff --git a/mgmtd/mgmt_main.c b/mgmtd/mgmt_main.c index ad9f40e2a5..a705990cac 100644 --- a/mgmtd/mgmt_main.c +++ b/mgmtd/mgmt_main.c @@ -17,20 +17,12 @@  #include "routing_nb.h" -char const *const mgmt_daemons[] = { -#ifdef HAVE_STATICD -	"staticd", -#endif -}; -uint mgmt_daemons_count = array_size(mgmt_daemons); -  /* mgmt options, we use GNU getopt library. */  static const struct option longopts[] = {  	{"skip_runas", no_argument, NULL, 'S'},  	{"no_zebra", no_argument, NULL, 'Z'},  	{"socket_size", required_argument, NULL, 's'}, -	{0} -}; +	{0}};  static void mgmt_exit(int);  static void mgmt_vrf_terminate(void); @@ -201,8 +193,11 @@ static void mgmt_vrf_terminate(void)   * all individual Backend clients.   */  static const struct frr_yang_module_info *const mgmt_yang_modules[] = { -	&frr_filter_info,  &frr_interface_info, &frr_route_map_info, -	&frr_routing_info, &frr_vrf_info, +	&frr_filter_info, +	&frr_interface_info, +	&frr_route_map_info, +	&frr_routing_info, +	&frr_vrf_info,  /*   * YANG module info supported by backend clients get added here.   * NOTE: Always set .ignore_cbs true for to avoid validating @@ -221,11 +216,12 @@ FRR_DAEMON_INFO(mgmtd, MGMTD, .vty_port = MGMTD_VTY_PORT,  		.signals = mgmt_signals, .n_signals = array_size(mgmt_signals),  		.privs = &mgmt_privs, .yang_modules = mgmt_yang_modules, -		.n_yang_modules = array_size(mgmt_yang_modules), -); +		.n_yang_modules = array_size(mgmt_yang_modules));  #define DEPRECATED_OPTIONS "" +struct frr_daemon_info *mgmt_daemon_info = &mgmtd_di; +  /* Main routine of mgmt. Treatment of argument and start mgmt finite   * state machine is handled at here.   */ diff --git a/mgmtd/mgmt_vty.c b/mgmtd/mgmt_vty.c index 7d6c8f206c..5cb172f3c9 100644 --- a/mgmtd/mgmt_vty.c +++ b/mgmtd/mgmt_vty.c @@ -10,6 +10,7 @@  #include "command.h"  #include "json.h" +#include "network.h"  #include "northbound_cli.h"  #include "mgmtd/mgmt.h" @@ -20,6 +21,8 @@  #include "mgmtd/mgmt_vty_clippy.c" +extern struct frr_daemon_info *mgmt_daemon_info; +  DEFPY(show_mgmt_be_adapter,        show_mgmt_be_adapter_cmd,        "show mgmt backend-adapter all", @@ -452,6 +455,16 @@ DEFPY(debug_mgmt, debug_mgmt_cmd,  }  /* + * We need an event driven file reader for reading in config files. + */ + +static void mgmt_config_read_in(struct event *event) +{ +	mgmt_vty_read_configs(); +} + +#if 0 +/*   * Analog of `frr_config_read_in()`, instead of our config file though we loop   * over all daemons that have transitioned to mgmtd, loading their configs   */ @@ -477,6 +490,7 @@ static int mgmt_config_pre_hook(struct event_loop *loop)  	}  	return 0;  } +#endif  void mgmt_vty_init(void)  { @@ -491,7 +505,10 @@ void mgmt_vty_init(void)  	static_vty_init();  #endif -	hook_register(frr_config_pre, mgmt_config_pre_hook); +	// hook_register(frr_config_pre, mgmt_config_pre_hook); + +	event_add_event(mm->master, mgmt_config_read_in, NULL, 0, +			&mgmt_daemon_info->read_in);  	install_node(&debug_node);  | 
