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

CHANGES
lib/dns/resolver.c

diff --git a/CHANGES b/CHANGES
index cdb21afd109d3f0bc2cbfc71520b6341a1ae7583..fc7711272424aee07503d70d1d040e1b9159e24f 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]
 
 2465.  [bug]           Adb's handling of lame addresses was different
index a4b01fbae332d3e29c06b372931b5719b1c8d349..3a02ba798e7363bd7402c64b051c087b43986386 100644 (file)
@@ -15,7 +15,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: resolver.c,v 1.218.2.18.4.84 2008/07/24 05:01:50 jinmei Exp $ */
+/* $Id: resolver.c,v 1.218.2.18.4.85 2008/10/17 22:03:37 jinmei Exp $ */
 
 #include <config.h>
 
@@ -363,6 +363,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,
@@ -873,6 +875,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;