From 92f261cf3b53dc64587d6fb72afd7350ea413c86 Mon Sep 17 00:00:00 2001
From: Jeremy McNamara <jj@nufone.net>
Date: Mon, 12 Jan 2004 06:01:46 +0000
Subject: [PATCH] unregister cli functions and fix monitor thread. Bug #798

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@1975 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 channels/chan_sip.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 6ce9e9bae7..b43f4068cd 100755
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -6545,6 +6545,15 @@ int unload_module()
 	/* First, take us out of the channel loop */
 	ast_channel_unregister(type);
 	ast_unregister_application(app_dtmfmode);
+	ast_cli_unregister(&cli_show_users);
+	ast_cli_unregister(&cli_show_channels);
+	ast_cli_unregister(&cli_show_channel);
+	ast_cli_unregister(&cli_show_peers);
+	ast_cli_unregister(&cli_show_registry);
+	ast_cli_unregister(&cli_debug);
+	ast_cli_unregister(&cli_no_debug);
+	ast_cli_unregister(&cli_inuse_show);
+	ast_rtp_proto_unregister(&sip_rtp);
 	if (!ast_mutex_lock(&iflock)) {
 		/* Hangup all interfaces if they have an owner */
 		p = iflist;
@@ -6560,7 +6569,7 @@ int unload_module()
 		return -1;
 	}
 	if (!ast_mutex_lock(&monlock)) {
-		if (monitor_thread) {
+		if (monitor_thread && (monitor_thread != -2)) {
 			pthread_cancel(monitor_thread);
 			pthread_kill(monitor_thread, SIGURG);
 			pthread_join(monitor_thread, NULL);
-- 
GitLab