about summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2009-07-26 12:16:24 -0700
committerAndreas Schwab <schwab@redhat.com>2009-07-29 11:19:39 +0200
commitb1cd3047ad1b119e09f26d0408f5232281431e8d (patch)
treef72854f7e4ae17ce1c75cbdb38a943bfa38e8665
parent87b8eeddb0972dc3cd7cbee1890cbc632dc38e40 (diff)
downloadglibc-b1cd3047ad1b119e09f26d0408f5232281431e8d.tar.gz
glibc-b1cd3047ad1b119e09f26d0408f5232281431e8d.tar.xz
glibc-b1cd3047ad1b119e09f26d0408f5232281431e8d.zip
Handle SERVFAIL, NOTIMP, REFUSED replies from DNS server better.
When doing IPv4+6 lookups we have to pass up the error record from
send_dg.
(cherry picked from commit e28b969b49811a30887e7a252ac1804a055fe297)
-rw-r--r--ChangeLog6
-rw-r--r--resolv/res_send.c6
2 files changed, 7 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 508c0defae..7c04deedbf 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2009-07-26  Ulrich Drepper  <drepper@redhat.com>
+
+	[BZ #10452]
+	* resolv/res_send.c (send_dg): Pass full SERVFAIL, NOTIMP, REFUSED
+	replies up.
+
 2009-07-16  Ulrich Drepper  <drepper@redhat.com>
 
 	* nscd/cache.c (cache_add): Use atomic_compare_and_exchange_bool_rel
diff --git a/resolv/res_send.c b/resolv/res_send.c
index 39c69da2bc..b7ec2adda5 100644
--- a/resolv/res_send.c
+++ b/resolv/res_send.c
@@ -1255,14 +1255,10 @@ send_dg(res_state statp,
 				? *thisanssiz : *thisresplen);
 
 			if (recvresp1 || (buf2 != NULL && recvresp2))
-			  {
-			    *resplen2 = 1;
-			    return resplen;
-			  }
+			  return resplen;
 			if (buf2 != NULL)
 			  {
 			    /* We are waiting for a possible second reply.  */
-			    resplen = 1;
 			    if (hp->id == anhp->id)
 			      recvresp1 = 1;
 			    else