Unify all the res_ninit patches
authorMark Spencer <markster@digium.com>
Mon, 26 Apr 2004 13:32:57 +0000 (13:32 +0000)
committerMark Spencer <markster@digium.com>
Mon, 26 Apr 2004 13:32:57 +0000 (13:32 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@2778 65c4cc65-6c06-0410-ace0-fbb531ad65f3

dns.c

diff --git a/dns.c b/dns.c
index c453149..33974aa 100755 (executable)
--- a/dns.c
+++ b/dns.c
@@ -151,24 +151,25 @@ static int dns_parse_answer(void *context,
        return 0;
 }
 
        return 0;
 }
 
+#if defined(res_ninit)
+#define HAS_RES_NINIT
+#else
+#warning "Warning, res_ninit is missing...  Could have reentrancy issues"
+#endif
+
 int ast_search_dns(void *context,
                                   const char *dname, int class, int type,
                                   int (*callback)(void *context, u_char *answer, int len, u_char *fullanswer))
 {
 int ast_search_dns(void *context,
                                   const char *dname, int class, int type,
                                   int (*callback)(void *context, u_char *answer, int len, u_char *fullanswer))
 {
-#ifdef linux
+#ifdef HAS_RES_NINIT
        struct __res_state dnsstate;
 #endif
        char answer[MAX_SIZE];
        int res, ret = -1;
 
        struct __res_state dnsstate;
 #endif
        char answer[MAX_SIZE];
        int res, ret = -1;
 
-#ifdef linux
-       #ifndef __UCLIBC__
-               res_ninit(&dnsstate);
-               res = res_nsearch(&dnsstate, dname, class, type, answer, sizeof(answer));
-       #else
-               res_init();
-               res = res_search(dname, class, type, answer, sizeof(answer));
-       #endif
+#ifdef HAS_RES_NINIT
+       res_ninit(&dnsstate);
+       res = res_nsearch(&dnsstate, dname, class, type, answer, sizeof(answer));
 #else
        res_init();
        res = res_search(dname, class, type, answer, sizeof(answer));
 #else
        res_init();
        res = res_search(dname, class, type, answer, sizeof(answer));
@@ -185,12 +186,8 @@ int ast_search_dns(void *context,
                else
                        ret = 1;
        }
                else
                        ret = 1;
        }
-#if defined(linux)
-       #ifndef __UCLIBC__
-               res_nclose(&dnsstate);
-       #else
-               res_close();
-       #endif
+#ifdef HAS_RES_NINIT
+       res_nclose(&dnsstate);
 #else
 #ifndef __APPLE__
        res_close();
 #else
 #ifndef __APPLE__
        res_close();