More BSD compile fixes (bugs #1754 and #1756)
authorMark Spencer <markster@digium.com>
Mon, 31 May 2004 19:40:23 +0000 (19:40 +0000)
committerMark Spencer <markster@digium.com>
Mon, 31 May 2004 19:40:23 +0000 (19:40 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3121 65c4cc65-6c06-0410-ace0-fbb531ad65f3

cdr/Makefile
channels/Makefile
dns.c

index d688725..6b92e27 100755 (executable)
@@ -17,6 +17,11 @@ MODS=cdr_csv.so
 
 CFLAGS+=-fPIC
 
+OSARCH=$(shell uname -s)
+ifeq (${OSARCH},FreeBSD)
+SOLINK+=-L/usr/local/lib
+endif
+
 #
 # unixODBC stuff...
 #
index 40f5024..fd0b796 100755 (executable)
@@ -49,6 +49,10 @@ endif
 ifneq (${OSARCH},Darwin)
 CHANNEL_LIBS+=chan_oss.so
 endif
+ifeq (${OSARCH},FreeBSD)
+SOLINK+=-L/usr/local/lib
+CHANNEL_LIBS+=chan_oss.so
+endif
 
 CHANNEL_LIBS+=$(shell [ -f /usr/include/linux/ixjuser.h ] && echo chan_phone.so)
 CHANNEL_LIBS+=$(shell [ -f h323/libchanh323.a ] && echo chan_h323.so)
diff --git a/dns.c b/dns.c
index 33974aa..0ec7d6d 100755 (executable)
--- a/dns.c
+++ b/dns.c
@@ -154,8 +154,11 @@ static int dns_parse_answer(void *context,
 #if defined(res_ninit)
 #define HAS_RES_NINIT
 #else
+static ast_mutex_t res_lock = AST_MUTEX_INITIALIZER;
+#if 0
 #warning "Warning, res_ninit is missing...  Could have reentrancy issues"
 #endif
+#endif
 
 int ast_search_dns(void *context,
                                   const char *dname, int class, int type,
@@ -171,6 +174,7 @@ int ast_search_dns(void *context,
        res_ninit(&dnsstate);
        res = res_nsearch(&dnsstate, dname, class, type, answer, sizeof(answer));
 #else
+       ast_mutex_lock(&res_lock);
        res_init();
        res = res_search(dname, class, type, answer, sizeof(answer));
 #endif
@@ -192,6 +196,7 @@ int ast_search_dns(void *context,
 #ifndef __APPLE__
        res_close();
 #endif
+       ast_mutex_unlock(&res_lock);
 #endif
        return ret;
 }