From a5e4e31654bea7a2600f82a6d3fbec88c0e42ddd Mon Sep 17 00:00:00 2001 From: Joshua Colp Date: Thu, 21 Sep 2006 22:14:31 +0000 Subject: [PATCH] Merged revisions 43454 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r43454 | file | 2006-09-21 18:12:09 -0400 (Thu, 21 Sep 2006) | 2 lines Clean up chan_mgcp's module load function (issue #8001 reported by Mithraen with mods by moi) ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@43455 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- channels/chan_mgcp.c | 43 ++++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/channels/chan_mgcp.c b/channels/chan_mgcp.c index 8e7d108..6694660 100644 --- a/channels/chan_mgcp.c +++ b/channels/chan_mgcp.c @@ -4242,34 +4242,35 @@ static int reload_config(void) /*! \brief load_module: PBX load module - initialization ---*/ static int load_module(void) { - int res; - - sched = sched_context_create(); - if (!sched) { + if (!(sched = sched_context_create())) { ast_log(LOG_WARNING, "Unable to create schedule context\n"); - return -1; + return AST_MODULE_LOAD_FAILURE; } - io = io_context_create(); - if (!io) { + + if (!(io = io_context_create())) { ast_log(LOG_WARNING, "Unable to create I/O context\n"); - return -1; + sched_context_destroy(sched); + return AST_MODULE_LOAD_FAILURE; } - if (!(res = reload_config())) { - /* Make sure we can register our mgcp channel type */ - if (ast_channel_register(&mgcp_tech)) { - ast_log(LOG_ERROR, "Unable to register channel class 'MGCP'\n"); - return -1; - } - ast_rtp_proto_register(&mgcp_rtp); - ast_cli_register_multiple(cli_mgcp, sizeof(cli_mgcp) / sizeof(struct ast_cli_entry)); - - /* And start the monitor for the first time */ - restart_monitor(); - } else + if (reload_config()) return AST_MODULE_LOAD_DECLINE; - return res; + /* Make sure we can register our mgcp channel type */ + if (ast_channel_register(&mgcp_tech)) { + ast_log(LOG_ERROR, "Unable to register channel class 'MGCP'\n"); + io_context_destroy(io); + sched_context_destroy(sched); + return AST_MODULE_LOAD_FAILURE; + } + + ast_rtp_proto_register(&mgcp_rtp); + ast_cli_register_multiple(cli_mgcp, sizeof(cli_mgcp) / sizeof(struct ast_cli_entry)); + + /* And start the monitor for the first time */ + restart_monitor(); + + return AST_MODULE_LOAD_SUCCESS; } /*! \brief mgcp_do_reload: Reload module */ -- 1.7.9.5