aboutsummaryrefslogtreecommitdiffstats
path: root/dns.c
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2004-05-31 19:40:23 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2004-05-31 19:40:23 +0000
commitbc5de50bc93360447d3afb001eca8a43a848d7f3 (patch)
tree90cded5b6ee2efd9bacb9494b12a6cfbcb3f6e56 /dns.c
parentcd8e03c0b7f057941b74c3f34d70fce58c94f1ed (diff)
More BSD compile fixes (bugs #1754 and #1756)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@3121 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'dns.c')
-rwxr-xr-xdns.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/dns.c b/dns.c
index 33974aa14..0ec7d6d51 100755
--- 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;
}