summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2009-06-11 10:07:33 -0700
committerPetr Baudis <pasky@suse.cz>2009-06-12 11:41:55 +0200
commit53f32b044fff54341c426a9ba16753b881d32f91 (patch)
tree33adcd82e3be25ab6fd8a4ff786b63de89e9a1e7
parentac37d9836e2967b9d5cd5b260910db53fbab1858 (diff)
downloadglibc-53f32b044fff54341c426a9ba16753b881d32f91.tar.gz
glibc-53f32b044fff54341c426a9ba16753b881d32f91.tar.xz
glibc-53f32b044fff54341c426a9ba16753b881d32f91.zip
Remember we switched to single-request mode.
This change prevents repetition in most later calls of the resolver
in case the DNS server or the network connection is broken.
(cherry picked from commit 310647e9809986986650994d036af18ca9b17fb2)
-rw-r--r--ChangeLog5
-rw-r--r--resolv/res_send.c3
2 files changed, 7 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index c6c3553ee1..ecf7c103c3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2009-06-11  Ulrich Drepper  <drepper@redhat.com>
+
+	* resolv/res_send.c (send_dg): Remember we switched to
+	single-request mode.
+
 2009-06-09  Ulrich Drepper  <drepper@redhat.com>
 
 	* dlfcn/dlfcn.h: Remove comma at end of enum.
diff --git a/resolv/res_send.c b/resolv/res_send.c
index 25a854f72e..39c69da2bc 100644
--- a/resolv/res_send.c
+++ b/resolv/res_send.c
@@ -1008,7 +1008,7 @@ send_dg(res_state statp,
 		seconds /= statp->nscount;
 	if (seconds <= 0)
 		seconds = 1;
-	bool single_request = ((statp->options) & RES_SNGLKUP) != 0;// XXX
+	bool single_request = (statp->options & RES_SNGLKUP) != 0;// XXX
 	int save_gotsomewhere = *gotsomewhere;
  retry:
 	evNowTime(&now);
@@ -1059,6 +1059,7 @@ send_dg(res_state statp,
 		       have received the first answer.  */
 		    if (!single_request)
 		      {
+			statp->options |= RES_SNGLKUP;
 			single_request = true;
 			*gotsomewhere = save_gotsomewhere;
 			goto retry;