diff options
Diffstat (limited to 'apps/app_amd.c')
-rw-r--r-- | apps/app_amd.c | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/apps/app_amd.c b/apps/app_amd.c index 70390f038..556fceec6 100644 --- a/apps/app_amd.c +++ b/apps/app_amd.c @@ -308,7 +308,7 @@ static int amd_exec(struct ast_channel *chan, void *data) return 0; } -static void load_config(int reload) +static int load_config(int reload) { struct ast_config *cfg = NULL; char *cat = NULL; @@ -317,9 +317,9 @@ static void load_config(int reload) if (!(cfg = ast_config_load("amd.conf", config_flags))) { ast_log(LOG_ERROR, "Configuration file amd.conf missing.\n"); - return; + return -1; } else if (cfg == CONFIG_STATUS_FILEUNCHANGED) - return; + return 0; cat = ast_category_browse(cfg, NULL); @@ -360,7 +360,7 @@ static void load_config(int reload) dfltInitialSilence, dfltGreeting, dfltAfterGreetingSilence, dfltTotalAnalysisTime, dfltMinimumWordLength, dfltBetweenWordsSilence, dfltMaximumNumberOfWords, dfltSilenceThreshold ); - return; + return 0; } static int unload_module(void) @@ -370,14 +370,18 @@ static int unload_module(void) static int load_module(void) { - load_config(0); - return ast_register_application(app, amd_exec, synopsis, descrip); + if (load_config(0)) + return AST_MODULE_LOAD_DECLINE; + if (ast_register_application(app, amd_exec, synopsis, descrip)) + return AST_MODULE_LOAD_FAILURE; + return AST_MODULE_LOAD_SUCCESS; } static int reload(void) { - load_config(1); - return 0; + if (load_config(1)) + return AST_MODULE_LOAD_DECLINE; + return AST_MODULE_LOAD_SUCCESS; } AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Answering Machine Detection Application", |