diff --git a/apps/app_confbridge.c b/apps/app_confbridge.c index 96ef12460e..8919b7e248 100644 --- a/apps/app_confbridge.c +++ b/apps/app_confbridge.c @@ -3142,7 +3142,7 @@ static int load_module(void) { int res = 0; - if (conf_load_config(0)) { + if (conf_load_config()) { ast_log(LOG_ERROR, "Unable to load config. Not loading module.\n"); return AST_MODULE_LOAD_DECLINE; } @@ -3191,7 +3191,7 @@ static int load_module(void) static int reload(void) { - return conf_load_config(1); + return conf_reload_config(); } AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Conference Bridge Application", diff --git a/apps/confbridge/conf_config_parser.c b/apps/confbridge/conf_config_parser.c index 6cec255221..042968c59a 100644 --- a/apps/confbridge/conf_config_parser.c +++ b/apps/confbridge/conf_config_parser.c @@ -1889,12 +1889,10 @@ static int verify_default_profiles(void) return 0; } -int conf_load_config(int reload) +int conf_load_config(void) { - if (!reload) { - if (aco_info_init(&cfg_info)) { - return -1; - } + if (aco_info_init(&cfg_info)) { + return -1; } /* User options */ @@ -1944,23 +1942,29 @@ int conf_load_config(int reload) aco_option_register(&cfg_info, "type", ACO_EXACT, menu_types, NULL, OPT_NOOP_T, 0, 0); aco_option_register_custom(&cfg_info, "^[0-9A-D*#]+$", ACO_REGEX, menu_types, NULL, menu_option_handler, 0); - if (aco_process_config(&cfg_info, reload) == ACO_PROCESS_ERROR) { + if (aco_process_config(&cfg_info, 0) == ACO_PROCESS_ERROR) { goto error; } - if (!reload && ast_cli_register_multiple(cli_confbridge_parser, ARRAY_LEN(cli_confbridge_parser))) { + if (ast_cli_register_multiple(cli_confbridge_parser, ARRAY_LEN(cli_confbridge_parser))) { goto error; } return 0; error: - /* On a reload, just keep the config we already have in place. */ - if (!reload) { - conf_destroy_config(); - } + conf_destroy_config(); return -1; } +int conf_reload_config(void) +{ + if (aco_process_config(&cfg_info, 1) == ACO_PROCESS_ERROR) { + /* On a reload, just keep the config we already have in place. */ + return -1; + } + return 0; +} + static void conf_user_profile_copy(struct user_profile *dst, struct user_profile *src) { *dst = *src; diff --git a/apps/confbridge/include/confbridge.h b/apps/confbridge/include/confbridge.h index 1af621dd86..60b2eab875 100644 --- a/apps/confbridge/include/confbridge.h +++ b/apps/confbridge/include/confbridge.h @@ -247,7 +247,10 @@ struct confbridge_user { }; /*! \brief load confbridge.conf file */ -int conf_load_config(int reload); +int conf_load_config(void); + +/*! \brief reload confbridge.conf file */ +int conf_reload_config(void); /*! \brief destroy the information loaded from the confbridge.conf file*/ void conf_destroy_config(void);