From: Alexandr Anikin Date: Tue, 10 Jun 2014 09:18:20 +0000 (+0000) Subject: chan_ooh323: fix loading module failure if there no accessible h323_log or ooh323... X-Git-Tag: 12.4.0-rc1~66 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=affd8271b2b8d0eab2a3d9acdf53ff568b387bdf;p=thirdparty%2Fasterisk.git 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 git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@415602 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/addons/chan_ooh323.c b/addons/chan_ooh323.c index a7f38bdf40..9f68cea06e 100644 --- a/addons/chan_ooh323.c +++ b/addons/chan_ooh323.c @@ -735,10 +735,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); } @@ -3741,10 +3739,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); @@ -3771,21 +3769,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(); @@ -3800,10 +3799,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) { @@ -3817,8 +3815,8 @@ static int load_module(void) case T_H225AliasAddress_email_ID: ooH323EpAddAliasEmailID(pNewAlias->value); break; - default: - ; + default: + ; } } @@ -3885,6 +3883,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;