mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-03 03:20:57 +00:00
res_corosync: Add check for config file before calling corosync apis
On some systems, res_corosync isn't compatible with the installed version of corosync so corosync_cfg_initialize fails, load_module returns LOAD_FAILURE, and Asterisk terminates. The work around has been to remember to add res_corosync as a noload in modules.conf. A better solution though is to have res_corosync check for its config file before attempting to call corosync apis and return LOAD_DECLINE if there's no config file. This lets Asterisk loading continue. If you have a res_corosync.conf file and res_corosync fails, you get the same behavior as today and the fatal error tells you something is wrong with the install. ASTERISK-24998 Change-Id: Iaf94a9431a4922ec4ec994003f02135acfdd3889
This commit is contained in:
committed by
Matt Jordan
parent
0722e11f26
commit
cc77440deb
@@ -883,6 +883,12 @@ static int load_module(void)
|
||||
goto failed;
|
||||
}
|
||||
|
||||
if (load_config(0)) {
|
||||
/* simply not configured is not a fatal error */
|
||||
res = AST_MODULE_LOAD_DECLINE;
|
||||
goto failed;
|
||||
}
|
||||
|
||||
if ((cs_err = corosync_cfg_initialize(&cfg_handle, &cfg_callbacks)) != CS_OK) {
|
||||
ast_log(LOG_ERROR, "Failed to initialize cfg: (%d)\n", (int) cs_err);
|
||||
goto failed;
|
||||
@@ -913,12 +919,6 @@ static int load_module(void)
|
||||
goto failed;
|
||||
}
|
||||
|
||||
if (load_config(0)) {
|
||||
/* simply not configured is not a fatal error */
|
||||
res = AST_MODULE_LOAD_DECLINE;
|
||||
goto failed;
|
||||
}
|
||||
|
||||
ast_cli_register_multiple(corosync_cli, ARRAY_LEN(corosync_cli));
|
||||
|
||||
return AST_MODULE_LOAD_SUCCESS;
|
||||
|
Reference in New Issue
Block a user