From 682f96cb5ccdba07765fe444a129d3c56209cbbc Mon Sep 17 00:00:00 2001 From: Richard Mudgett Date: Tue, 9 Oct 2018 16:18:49 -0500 Subject: [PATCH] res_statsd.c: Fix returned reload status. The return status when there was no change in statsd.conf was incorrect. This resulted in the wrong status message on the CLI when reloading the module. * Fixed cleanup on initial load if initializing statsd failed. Change-Id: Id24fae75f1a7ff584a444a5680e867d989792481 --- res/res_statsd.c | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/res/res_statsd.c b/res/res_statsd.c index 3e52c219b5..01a1fd867a 100644 --- a/res/res_statsd.c +++ b/res/res_statsd.c @@ -316,6 +316,14 @@ static void statsd_shutdown(void) } } +static int unload_module(void) +{ + statsd_shutdown(); + aco_info_destroy(&cfg_info); + ao2_global_obj_release(confs); + return 0; +} + static int load_module(void) { if (aco_info_init(&cfg_info)) { @@ -364,34 +372,34 @@ static int load_module(void) return AST_MODULE_LOAD_SUCCESS; } - if (statsd_init() != 0) { - aco_info_destroy(&cfg_info); + if (statsd_init()) { + unload_module(); return AST_MODULE_LOAD_DECLINE; } return AST_MODULE_LOAD_SUCCESS; } -static int unload_module(void) -{ - statsd_shutdown(); - aco_info_destroy(&cfg_info); - ao2_global_obj_release(confs); - return 0; -} - static int reload_module(void) { - if (aco_process_config(&cfg_info, 1)) { + switch (aco_process_config(&cfg_info, 1)) { + case ACO_PROCESS_OK: + break; + case ACO_PROCESS_UNCHANGED: + return AST_MODULE_LOAD_SUCCESS; + case ACO_PROCESS_ERROR: + default: return AST_MODULE_LOAD_DECLINE; } if (is_enabled()) { - return statsd_init(); + if (statsd_init()) { + return AST_MODULE_LOAD_DECLINE; + } } else { statsd_shutdown(); - return AST_MODULE_LOAD_SUCCESS; } + return AST_MODULE_LOAD_SUCCESS; } /* The priority of this module is set just after realtime, since it loads