diff options
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | resolv/res_query.c | 14 |
2 files changed, 14 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog index 08f8e1a6a8..3fb1d23ef2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2004-08-08 Ulrich Drepper <drepper@redhat.com> + * resolv/res_query.c (__libc_res_nsearch): Correctly test whether + name contains any dots. [BZ #95] + * resolv/res_send.c: Compiling with DEBUG defined works again. * resolv/gethnamaddr.c (dprintf): Renamed to Dprintf. Adjust all callers. diff --git a/resolv/res_query.c b/resolv/res_query.c index ab4e02a559..f6d7f16dab 100644 --- a/resolv/res_query.c +++ b/resolv/res_query.c @@ -139,7 +139,7 @@ __libc_res_nquery(res_state statp, use_malloc = 1; n = res_nmkquery(statp, QUERY, name, class, type, NULL, 0, NULL, buf, MAXPACKET); - } + } } if (__builtin_expect (n <= 0, 0)) { #ifdef DEBUG @@ -239,6 +239,9 @@ __libc_res_nsearch(res_state statp, return (__libc_res_nquery(statp, cp, class, type, answer, anslen, answerp)); + printf("dots=%d, statp->ndots=%d, trailing_dot=%d, name=%s\n", + (int)dots,(int)statp->ndots,(int)trailing_dot,name); + /* * If there are enough dots in the name, let's just give it a * try 'as is'. The threshold can be set with the "ndots" option. @@ -337,7 +340,7 @@ __libc_res_nsearch(res_state statp, * for the name, and "." is not on the search list, then try an as-is * query now. */ - if (statp->ndots && !(tried_as_is || root_on_list)) { + if (dots && !(tried_as_is || root_on_list)) { ret = __libc_res_nquerydomain(statp, name, NULL, class, type, answer, anslen, answerp); if (ret > 0) @@ -388,6 +391,8 @@ __libc_res_nquerydomain(res_state statp, const char *longname = nbuf; int n, d; + write(2,"<<aaaa\n",7); + #ifdef DEBUG if (statp->options & RES_DEBUG) printf(";; res_nquerydomain(%s, %s, %d, %d)\n", @@ -418,8 +423,11 @@ __libc_res_nquerydomain(res_state statp, } sprintf(nbuf, "%s.%s", name, domain); } - return (__libc_res_nquery(statp, longname, class, type, answer, + int r = (__libc_res_nquery(statp, longname, class, type, answer, anslen, answerp)); + write(2,">>aaaa\n",7); + return r; + } int |