From 640a7028c3fa01f3f61fe8c81291fe9ec196e578 Mon Sep 17 00:00:00 2001 From: qwell Date: Fri, 22 Sep 2006 03:09:22 +0000 Subject: Merged revisions 43469 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r43469 | qwell | 2006-09-21 20:01:16 -0700 (Thu, 21 Sep 2006) | 4 lines First shot at unload_module in chan_skinny.. More to come. ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@43470 f38db490-d61c-443f-a65b-d21fe96a405b --- channels/chan_skinny.c | 62 ++++++++++++++++++++------------------------------ 1 file changed, 25 insertions(+), 37 deletions(-) diff --git a/channels/chan_skinny.c b/channels/chan_skinny.c index 984164449..e8c4d326f 100644 --- a/channels/chan_skinny.c +++ b/channels/chan_skinny.c @@ -4521,52 +4521,40 @@ static int load_module(void) static int unload_module(void) { -#if 0 - struct skinnysession *s; + delete_devices(); - /* close all IP connections */ - if (!ast_mutex_lock(&devicelock)) { - /* Terminate tcp listener thread */ - } else { - ast_log(LOG_WARNING, "Unable to lock the monitor\n"); - return -1; - } - if (!ast_mutex_lock(&monlock)) { - if (monitor_thread && (monitor_thread != AST_PTHREADT_STOP)) { - pthread_cancel(monitor_thread); - pthread_kill(monitor_thread, SIGURG); - pthread_join(monitor_thread, NULL); - } - monitor_thread = AST_PTHREADT_STOP; - ast_mutex_unlock(&monlock); - } else { - ast_log(LOG_WARNING, "Unable to lock the monitor\n"); - return -1; + ast_mutex_lock(&monlock); + if (monitor_thread && (monitor_thread != AST_PTHREADT_STOP)) { + pthread_cancel(monitor_thread); + pthread_kill(monitor_thread, SIGURG); + pthread_join(monitor_thread, NULL); } - if (!ast_mutex_lock(&iflock)) { - /* Destroy all the interfaces and free their memory */ - p = iflist; - while(p) { - pl = p; - p = p->next; - /* Free associated memory */ - ast_mutex_destroy(&pl->lock); - free(pl); - } - iflist = NULL; - ast_mutex_unlock(&iflock); - } else { - ast_log(LOG_WARNING, "Unable to lock the monitor\n"); - return -1; + monitor_thread = AST_PTHREADT_STOP; + ast_mutex_unlock(&monlock); + +#if 0 /* XXX This is...funky. Will fix shortly */ + ast_mutex_lock(&sessionlock); + /* Destroy all the interfaces and free their memory */ + p = iflist; + while(p) { + pl = p; + p = p->next; + /* Free associated memory */ + ast_mutex_destroy(&pl->lock); + free(pl); } + iflist = NULL; + ast_mutex_unlock(&sessionlock); +#endif ast_rtp_proto_unregister(&skinny_rtp); ast_channel_unregister(&skinny_tech); ast_cli_unregister_multiple(cli_skinny, sizeof(cli_skinny) / sizeof(struct ast_cli_entry)); + close(skinnysock); + sched_context_destroy(sched); + return 0; -#endif - return -1; } AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Skinny Client Control Protocol (Skinny)", -- cgit v1.2.3