]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
2468. [bug] Resolver could try unreachable servers multiple times.
authorTatuya JINMEI 神明達哉 <jinmei@isc.org>
Fri, 17 Oct 2008 22:02:13 +0000 (22:02 +0000)
committerTatuya JINMEI 神明達哉 <jinmei@isc.org>
Fri, 17 Oct 2008 22:02:13 +0000 (22:02 +0000)
[RT #18739]

CHANGES
lib/dns/resolver.c

diff --git a/CHANGES b/CHANGES
index 5f84f1a4bc3526416c876d3a2507fac16991b03d..36bc041bbe8a8d6c4e8ebe651da281abd728f10e 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,6 @@
+2468.  [bug]           Resolver could try unreachable servers multiple times.
+                       [RT #18739]
+
 2467.  [bug]           Failure of fcntl(F_DUPFD) wasn't logged. [RT #18740]
 
 2466.  [doc]           ARM: explain max-cache-ttl 0 SERVFAIL issue.
index de21f8a354fb57fb4633402a5453201dbb0afb65..dc648c9c36732046dae41ec96dc581b0b4f858d3 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: resolver.c,v 1.284.18.78 2008/09/04 04:56:52 marka Exp $ */
+/* $Id: resolver.c,v 1.284.18.79 2008/10/17 22:02:13 jinmei Exp $ */
 
 /*! \file */
 
@@ -374,6 +374,8 @@ static isc_result_t ncache_adderesult(dns_message_t *message,
                                      isc_result_t *eresultp);
 static void validated(isc_task_t *task, isc_event_t *event);
 static void maybe_destroy(fetchctx_t *fctx);
+static void add_bad(fetchctx_t *fctx, dns_adbaddrinfo_t *addrinfo,
+                   isc_result_t reason);
 
 static isc_result_t
 valcreate(fetchctx_t *fctx, dns_adbaddrinfo_t *addrinfo, dns_name_t *name,
@@ -919,6 +921,7 @@ process_sendevent(resquery_t *query, isc_event_t *event) {
                        /*
                         * No route to remote.
                         */
+                       add_bad(fctx, query->addrinfo, sevent->result);
                        fctx_cancelquery(&query, NULL, NULL, ISC_TRUE);
                        retry = ISC_TRUE;
                        break;