From c63bf80c384729157d4b8650379fda381f451b41 Mon Sep 17 00:00:00 2001 From: Alexandr Anikin <may@telecom-service.ru> Date: Tue, 10 Jun 2014 09:28:55 +0000 Subject: [PATCH] chan_ooh323: fix loading module failure if there no accessible h323_log or ooh323 config file change return 1 to return AST_MODULE_LOAD_FAILURE on module load routine few cosmetic changes ASTERISK-23814 #close (closes issue ASTERISK-23814) Reported by: Igor Goncharovsky Patches: ASTERISK-23814-ast11.patch ........ Merged revisions 415599 from http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged revisions 415602 from http://svn.asterisk.org/svn/asterisk/branches/12 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@415630 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- addons/chan_ooh323.c | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/addons/chan_ooh323.c b/addons/chan_ooh323.c index fd22cd4971..8f1ae76bcd 100644 --- a/addons/chan_ooh323.c +++ b/addons/chan_ooh323.c @@ -739,10 +739,8 @@ static struct ast_channel *ooh323_request(const char *type, struct ast_format_ca return NULL; } - ast_mutex_unlock(&p->lock); ast_cond_init(&p->rtpcond, NULL); ooMakeCall(data, p->callToken, AST_MAX_EXTENSION, NULL); - ast_mutex_lock(&p->lock); if (!p->rtp) { ast_cond_wait(&p->rtpcond, &p->lock); } @@ -3756,10 +3754,10 @@ static int load_module(void) .onMediaChanged = (cb_OnMediaChanged) setup_rtp_remote, }; if (!(gCap = ast_format_cap_alloc(0))) { - return 1; + return AST_MODULE_LOAD_FAILURE; } if (!(ooh323_tech.capabilities = ast_format_cap_alloc(0))) { - return 1; + return AST_MODULE_LOAD_FAILURE; } ast_format_cap_add(gCap, ast_format_set(&tmpfmt, AST_FORMAT_ULAW, 0)); ast_format_cap_add_all(ooh323_tech.capabilities); @@ -3786,21 +3784,22 @@ static int load_module(void) if (!reload_config(0)) { + + /* fire up the H.323 Endpoint */ + if (OO_OK != ooH323EpInitialize(OO_CALLMODE_AUDIOCALL, gLogFile)) { + ast_log(LOG_ERROR, "Failed to initialize OOH323 endpoint-" + "OOH323 Disabled\n"); + return AST_MODULE_LOAD_FAILURE; + } + /* Make sure we can register our OOH323 channel type */ if (ast_channel_register(&ooh323_tech)) { ast_log(LOG_ERROR, "Unable to register channel class %s\n", type); - return 0; + return AST_MODULE_LOAD_FAILURE; } ast_rtp_glue_register(&ooh323_rtp); ast_cli_register_multiple(cli_ooh323, sizeof(cli_ooh323) / sizeof(struct ast_cli_entry)); - /* fire up the H.323 Endpoint */ - if (OO_OK != ooH323EpInitialize(OO_CALLMODE_AUDIOCALL, gLogFile)) { - ast_log(LOG_ERROR, "Failed to initialize OOH323 endpoint-" - "OOH323 Disabled\n"); - return 1; - } - if (gIsGateway) ooH323EpSetAsGateway(); @@ -3815,10 +3814,9 @@ static int load_module(void) } ooH323EpSetCallerID(gCallerID); - if(ooH323EpSetTCPPortRange(ooconfig.mTCPPortStart, - ooconfig.mTCPPortEnd) == OO_FAILED) { - ast_log(LOG_ERROR, "h225portrange: Failed to set range\n"); - } + if(ooH323EpSetTCPPortRange(ooconfig.mTCPPortStart, ooconfig.mTCPPortEnd) == OO_FAILED) { + ast_log(LOG_ERROR, "h225portrange: Failed to set range\n"); + } /* Set aliases if any */ for (pNewAlias = gAliasList; pNewAlias; pNewAlias = pNewAlias->next) { @@ -3832,8 +3830,8 @@ static int load_module(void) case T_H225AliasAddress_email_ID: ooH323EpAddAliasEmailID(pNewAlias->value); break; - default: - ; + default: + ; } } @@ -3900,6 +3898,9 @@ static int load_module(void) } /* And start the monitor for the first time */ restart_monitor(); + } else { + ast_log(LOG_ERROR, "Can't load ooh323 config file, OOH323 Disabled\n"); + return AST_MODULE_LOAD_FAILURE; } return 0; -- GitLab