Skip to content
Snippets Groups Projects
Commit cc77440d authored by George Joseph's avatar George Joseph Committed by Matt Jordan
Browse files

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
parent 0722e11f
No related branches found
No related tags found
No related merge requests found
......@@ -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;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment