aboutsummaryrefslogtreecommitdiffstats
path: root/channels/chan_phone.c
diff options
context:
space:
mode:
authorqwell <qwell@f38db490-d61c-443f-a65b-d21fe96a405b>2007-09-05 15:16:50 +0000
committerqwell <qwell@f38db490-d61c-443f-a65b-d21fe96a405b>2007-09-05 15:16:50 +0000
commit9c760c1325ef34d6ffdb6387e584dadfb5c1d7b6 (patch)
tree7ae2b1bcb8318717036250b711213842bae2e5c5 /channels/chan_phone.c
parent9146a1909cdd62221533b375e5355d37f2c49020 (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: http://svn.digium.com/svn/asterisk/trunk@81524 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_phone.c')
-rw-r--r--channels/chan_phone.c11
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");