]> 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 21:58:09 +0000 (21:58 +0000)
committerTatuya JINMEI 神明達哉 <jinmei@isc.org>
Fri, 17 Oct 2008 21:58:09 +0000 (21:58 +0000)
[RT #18739]

CHANGES
lib/dns/resolver.c

diff --git a/CHANGES b/CHANGES
index 9a89655405ffae402d7e63e80b4633a807d4c21d..4ead4028e0d4319c3723177ffb597992ad607f6b 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 e195ac173c81bde6b62d0556acc615a9122b564f..5c9f348a5ed86e194dcf2cec46ad7a33733fe71f 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: resolver.c,v 1.381 2008/09/24 02:46:22 marka Exp $ */
+/* $Id: resolver.c,v 1.382 2008/10/17 21:58:09 jinmei Exp $ */
 
 /*! \file */
 
@@ -394,6 +394,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);
 
 /*%
  * Increment resolver-related statistics counters.
@@ -978,6 +980,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;