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:
@@ -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 {
|
||||||
|
Reference in New Issue
Block a user