|
|
|
@ -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
|
|
|
|
|