mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-20 03:59:01 +00:00
Fix INTERNAL_OBJ error on stop when calendars.conf missing
Initialize the calendars container before calling load_config and return FAILURE on allocation failure. Also, use the AST_MODULE_LOAD_* values for return values. Thanks to rmudgett for pointing out the error and the need to use the defined values for return git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@242812 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -1647,14 +1647,14 @@ static int unload_module(void)
|
|||||||
|
|
||||||
static int load_module(void)
|
static int load_module(void)
|
||||||
{
|
{
|
||||||
if (load_config(NULL)) {
|
|
||||||
/* We don't have calendar support enabled */
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!(calendars = ao2_container_alloc(CALENDAR_BUCKETS, calendar_hash_fn, calendar_cmp_fn))) {
|
if (!(calendars = ao2_container_alloc(CALENDAR_BUCKETS, calendar_hash_fn, calendar_cmp_fn))) {
|
||||||
ast_log(LOG_ERROR, "Unable to allocate calendars container!\n");
|
ast_log(LOG_ERROR, "Unable to allocate calendars container!\n");
|
||||||
return -1;
|
return AST_MODULE_LOAD_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (load_config(NULL)) {
|
||||||
|
/* We don't have calendar support enabled */
|
||||||
|
return AST_MODULE_LOAD_DECLINE;
|
||||||
}
|
}
|
||||||
|
|
||||||
ast_mutex_init(&refreshlock);
|
ast_mutex_init(&refreshlock);
|
||||||
@@ -1663,7 +1663,7 @@ static int load_module(void)
|
|||||||
|
|
||||||
if (!(sched = sched_context_create())) {
|
if (!(sched = sched_context_create())) {
|
||||||
ast_log(LOG_ERROR, "Unable to create sched context\n");
|
ast_log(LOG_ERROR, "Unable to create sched context\n");
|
||||||
return -1;
|
return AST_MODULE_LOAD_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ast_pthread_create_background(&refresh_thread, NULL, do_refresh, NULL) < 0) {
|
if (ast_pthread_create_background(&refresh_thread, NULL, do_refresh, NULL) < 0) {
|
||||||
@@ -1682,7 +1682,7 @@ static int load_module(void)
|
|||||||
/* Since other modules depend on this, disable unloading */
|
/* Since other modules depend on this, disable unloading */
|
||||||
ast_module_ref(ast_module_info->self);
|
ast_module_ref(ast_module_info->self);
|
||||||
|
|
||||||
return 0;
|
return AST_MODULE_LOAD_SUCCESS;
|
||||||
}
|
}
|
||||||
AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS, "Asterisk Calendar integration",
|
AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS, "Asterisk Calendar integration",
|
||||||
.load = load_module,
|
.load = load_module,
|
||||||
|
Reference in New Issue
Block a user