summaryrefslogtreecommitdiff
path: root/channels/chan_mgcp.c
diff options
context:
space:
mode:
authorJoshua Colp <jcolp@digium.com>2006-09-21 22:14:31 +0000
committerJoshua Colp <jcolp@digium.com>2006-09-21 22:14:31 +0000
commita5e4e31654bea7a2600f82a6d3fbec88c0e42ddd (patch)
treea5a67d13d68eb61e9bd423d17b7637221da5f8a0 /channels/chan_mgcp.c
parent6ae874151842eef4da11c870c418dc4b2b6c9d4b (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: https://origsvn.digium.com/svn/asterisk/trunk@43455 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels/chan_mgcp.c')
-rw-r--r--channels/chan_mgcp.c43
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 */