diff options
author | Mark Spencer <markster@digium.com> | 2004-04-26 13:32:57 +0000 |
---|---|---|
committer | Mark Spencer <markster@digium.com> | 2004-04-26 13:32:57 +0000 |
commit | 3b64c4830f47b36418704dda3e608f05c7a09e6f (patch) | |
tree | 1194b39692b711670ee45aebaf26209cef87ba42 /dns.c | |
parent | add7cf7ded2222e53d064000611dcc5dbe80bd5d (diff) |
Unify all the res_ninit patches
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@2778 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'dns.c')
-rwxr-xr-x | dns.c | 27 |
1 files changed, 12 insertions, 15 deletions
@@ -151,24 +151,25 @@ static int dns_parse_answer(void *context, 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)) { -#ifdef linux +#ifdef HAS_RES_NINIT 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)); @@ -185,12 +186,8 @@ int ast_search_dns(void *context, 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(); |