[Asterisk-cvs] asterisk dns.c,1.6,1.7

markster at lists.digium.com markster at lists.digium.com
Mon Apr 26 09:26:59 CDT 2004


Update of /usr/cvsroot/asterisk
In directory mongoose.digium.com:/tmp/cvs-serv29148

Modified Files:
	dns.c 
Log Message:
Unify all the res_ninit patches


Index: dns.c
===================================================================
RCS file: /usr/cvsroot/asterisk/dns.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- dns.c	15 Apr 2004 00:13:30 -0000	1.6
+++ dns.c	26 Apr 2004 13:32:57 -0000	1.7
@@ -151,24 +151,25 @@
 	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 @@
 		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();




More information about the svn-commits mailing list