From 21dcb715db4b1482f66d32ac80bb061ae08663c6 Mon Sep 17 00:00:00 2001 From: pcadach Date: Tue, 23 Jan 2007 06:51:51 +0000 Subject: Do not abort Asterisk startup if h323 configuration file not found (reported by mithraen) git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@51615 f38db490-d61c-443f-a65b-d21fe96a405b --- channels/Makefile | 4 ++-- channels/chan_h323.c | 12 +++++++++--- 2 files changed, 11 insertions(+), 5 deletions(-) (limited to 'channels') diff --git a/channels/Makefile b/channels/Makefile index 736372514..3515532a1 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 cf4e89f64..f4c1c82be 100644 --- a/channels/chan_h323.c +++ b/channels/chan_h323.c @@ -3091,13 +3091,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)) { @@ -3227,8 +3231,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); -- cgit v1.2.3