From cd61f69a83f08fbec25d8376cafb6b36b2611c1a Mon Sep 17 00:00:00 2001
From: Paul Cadach <paul@odt.east.telecom.kz>
Date: Tue, 23 Jan 2007 06:56:26 +0000
Subject: [PATCH] Merged revisions 51615 via svnmerge from
 https://origsvn.digium.com/svn/asterisk/branches/1.4
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

........
r51615 | pcadach | 2007-01-22 22:51:51 -0800 (Пнд, 22 Янв 2007) | 1 line

Do not abort Asterisk startup if h323 configuration file not found (reported by mithraen)
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@51623 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 channels/Makefile    |  4 ++--
 channels/chan_h323.c | 12 +++++++++---
 2 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/channels/Makefile b/channels/Makefile
index 7363725140..3515532a1f 100644
--- a/channels/Makefile
+++ b/channels/Makefile
@@ -100,11 +100,11 @@ chan_alsa.o: busy.h ringtone.h
 ifeq ($(OSARCH),linux-gnu)
 chan_h323.so: chan_h323.o h323/libchanh323.a h323/Makefile.ast
 	$(ECHO_PREFIX) echo "   [LD] $^ -> $@"
-	$(CMD_PREFIX) $(CXX) $(SOLINK) $(H323LDFLAGS) -o $@ $< h323/libchanh323.a $(H323LDLIBS)
+	$(CMD_PREFIX) $(CXX) $(PTHREAD_CFLAGS) $(ASTLDFLAGS) $(SOLINK) $(H323LDFLAGS) -o $@ $< h323/libchanh323.a $(H323LDLIBS)
 else
 chan_h323.so: chan_h323.o h323/libchanh323.a
 	$(ECHO_PREFIX) echo "   [LD] $^ -> $@"
-	$(CMD_PREFIX) $(CXX) $(SOLINK) -o $@ $< h323/libchanh323.a $(CHANH323LIB) -L$(PWLIBDIR)/lib $(PTLIB) -L$(OPENH323DIR)/lib $(H323LIB) -L/usr/lib -lcrypto -lssl -lexpat
+	$(CMD_PREFIX) $(CXX) $(PTHREAD_CFLAGS) $(ASTLDFLAGS) $(SOLINK) -o $@ $< h323/libchanh323.a $(CHANH323LIB) -L$(PWLIBDIR)/lib $(PTLIB) -L$(OPENH323DIR)/lib $(H323LIB) -L/usr/lib -lcrypto -lssl -lexpat
 endif
 
 chan_misdn.o: ASTCFLAGS+=-Imisdn
diff --git a/channels/chan_h323.c b/channels/chan_h323.c
index 80313279b0..5de07ab244 100644
--- a/channels/chan_h323.c
+++ b/channels/chan_h323.c
@@ -3201,13 +3201,17 @@ static enum ast_module_load_result load_module(void)
 	ASTOBJ_CONTAINER_INIT(&aliasl);
 	res = reload_config(0);
 	if (res) {
+		/* No config entry */
+		ast_log(LOG_NOTICE, "Unload and load chan_h323.so again in order to receive configuration changes.\n");
 		ast_cli_unregister(&cli_h323_reload);
 		io_context_destroy(io);
+		io = NULL;
 		sched_context_destroy(sched);
+		sched = NULL;
 		ASTOBJ_CONTAINER_DESTROY(&userl);
 		ASTOBJ_CONTAINER_DESTROY(&peerl);
 		ASTOBJ_CONTAINER_DESTROY(&aliasl);
-		return /*AST_MODULE_LOAD_DECLINE*/AST_MODULE_LOAD_FAILURE;
+		return AST_MODULE_LOAD_DECLINE;
 	} else {
 		/* Make sure we can register our channel type */
 		if (ast_channel_register(&oh323_tech)) {
@@ -3338,8 +3342,10 @@ static int unload_module(void)
 	if (!gatekeeper_disable)
 		h323_gk_urq();
 	h323_end_process();
-	io_context_destroy(io);
-	sched_context_destroy(sched);
+	if (io)
+		io_context_destroy(io);
+	if (sched)
+		sched_context_destroy(sched);
 
 	ASTOBJ_CONTAINER_DESTROYALL(&userl, oh323_destroy_user);
 	ASTOBJ_CONTAINER_DESTROY(&userl);
-- 
GitLab