use res_nsearch if we have it (from Larry Greenfield)

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@11382 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Johan Danielsson
2002-09-04 20:55:20 +00:00
parent e3d19529f2
commit f956bbce07

View File

@@ -369,26 +369,43 @@ dns_lookup_int(const char *domain, int rr_class, int rr_type)
{ {
unsigned char reply[1024]; unsigned char reply[1024];
int len; int len;
#ifdef HAVE__RES #if defined(HAVE__RES) || defined(HAVE_RES_NSEARCH)
u_long old_options = 0; u_long old_options = 0;
#endif #endif
#ifdef HAVE_RES_NSEARCH
res_state statp;
if(res_ninit(statp))
return NULL; /* is this the best we can do? */
#endif
if (_resolve_debug) { if (_resolve_debug) {
#ifdef HAVE__RES #ifdef HAVE_RES_NSEARCH
old_options = statp.options;
statp.options |= RES_DEBUG;
#elif defined(HAVE__RES)
old_options = _res.options; old_options = _res.options;
_res.options |= RES_DEBUG; _res.options |= RES_DEBUG;
#endif #endif
fprintf(stderr, "dns_lookup(%s, %d, %s)\n", domain, fprintf(stderr, "dns_lookup(%s, %d, %s)\n", domain,
rr_class, dns_type_to_string(rr_type)); rr_class, dns_type_to_string(rr_type));
} }
#ifdef HAVE_RES_NSEARCH
len = res_nsearch(statp, domain, rr_class, rr_type, reply, sizeof(reply));
#else
len = res_search(domain, rr_class, rr_type, reply, sizeof(reply)); len = res_search(domain, rr_class, rr_type, reply, sizeof(reply));
#endif
if (_resolve_debug) { if (_resolve_debug) {
#ifdef HAVE__RES #ifdef HAVE_RES_NSEARCH
statp.options = old_options;
#elif defined(HAVE__RES)
_res.options = old_options; _res.options = old_options;
#endif #endif
fprintf(stderr, "dns_lookup(%s, %d, %s) --> %d\n", fprintf(stderr, "dns_lookup(%s, %d, %s) --> %d\n",
domain, rr_class, dns_type_to_string(rr_type), len); domain, rr_class, dns_type_to_string(rr_type), len);
} }
#ifdef HAVE_RES_NSEARCH
res_nclose(statp);
#endif
if(len < 0) { if(len < 0) {
return NULL; return NULL;
} else { } else {