diff options
author | file <file@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-09-21 22:14:31 +0000 |
---|---|---|
committer | file <file@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-09-21 22:14:31 +0000 |
commit | 886f9686442e4b15c6798681eb296f97fc4840bf (patch) | |
tree | a5a67d13d68eb61e9bd423d17b7637221da5f8a0 /channels/chan_mgcp.c | |
parent | 2a2a1439668c0ddf528efe04673d2ba15ae78ce0 (diff) |
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: http://svn.digium.com/svn/asterisk/trunk@43455 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_mgcp.c')
-rw-r--r-- | channels/chan_mgcp.c | 43 |
1 files changed, 22 insertions, 21 deletions
diff --git a/channels/chan_mgcp.c b/channels/chan_mgcp.c index 8e7d108f6..66946604f 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 */ |