}
}
+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)) {
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