diff options
author | Jason Parker <jparker@digium.com> | 2007-09-05 15:16:50 +0000 |
---|---|---|
committer | Jason Parker <jparker@digium.com> | 2007-09-05 15:16:50 +0000 |
commit | 9a46a17c27fa5cddf6697d62ff6477de5d543f7e (patch) | |
tree | 7ae2b1bcb8318717036250b711213842bae2e5c5 /channels/chan_phone.c | |
parent | 3d62457e96bf4883650dfbe3df6b3aa5dd48dda5 (diff) |
Merged revisions 81523 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
(closes issue #10651)
........
r81523 | qwell | 2007-09-05 10:14:30 -0500 (Wed, 05 Sep 2007) | 5 lines
Do not try to unregister a NULL channel tech.
Also changed load_module function to use defines rather than numbers for return values.
Issue 10651, patch by rbraun_proformatique, with additions by me.
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@81524 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels/chan_phone.c')
-rw-r--r-- | channels/chan_phone.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/channels/chan_phone.c b/channels/chan_phone.c index 49b9cf77a..33f515d5e 100644 --- a/channels/chan_phone.c +++ b/channels/chan_phone.c @@ -1284,7 +1284,8 @@ static int __unload_module(void) { struct phone_pvt *p, *pl; /* First, take us out of the channel loop */ - ast_channel_unregister(cur_tech); + if (cur_tech) + ast_channel_unregister(cur_tech); if (!ast_mutex_lock(&iflock)) { /* Hangup all interfaces if they have an owner */ p = iflist; @@ -1359,7 +1360,7 @@ static int load_module(void) if (ast_mutex_lock(&iflock)) { /* It's a little silly to lock it, but we mind as well just to be sure */ ast_log(LOG_ERROR, "Unable to lock interface list???\n"); - return -1; + return AST_MODULE_LOAD_FAILURE; } v = ast_variable_browse(cfg, "interfaces"); while(v) { @@ -1375,7 +1376,7 @@ static int load_module(void) ast_config_destroy(cfg); ast_mutex_unlock(&iflock); __unload_module(); - return -1; + return AST_MODULE_LOAD_FAILURE; } } else if (!strcasecmp(v->name, "silencesupression")) { silencesupression = ast_true(v->value); @@ -1445,12 +1446,12 @@ static int load_module(void) ast_log(LOG_ERROR, "Unable to register channel class 'Phone'\n"); ast_config_destroy(cfg); __unload_module(); - return -1; + return AST_MODULE_LOAD_FAILURE; } ast_config_destroy(cfg); /* And start the monitor for the first time */ restart_monitor(); - return 0; + return AST_MODULE_LOAD_SUCCESS; } AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Linux Telephony API Support"); |