]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
try tcp axfr/ixfr even if refresh fails/refused.
authorMark Andrews <marka@isc.org>
Wed, 21 May 2003 14:15:32 +0000 (14:15 +0000)
committerMark Andrews <marka@isc.org>
Wed, 21 May 2003 14:15:32 +0000 (14:15 +0000)
lib/dns/zone.c

index 54fd1fd73886631372408a72c3e1de6acba30aab..c08ba48dc40b8b444046859b8affa9370eb1603b 100644 (file)
@@ -15,7 +15,7 @@
  * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: zone.c,v 1.389 2003/05/14 02:41:17 marka Exp $ */
+/* $Id: zone.c,v 1.390 2003/05/21 14:15:32 marka Exp $ */
 
 #include <config.h>
 
@@ -3402,6 +3402,8 @@ refresh_callback(isc_task_t *task, isc_event_t *event) {
                                     "refresh: retry limit for "
                                     "master %s exceeded (source %s)",
                                     master, source);
+                       /* Try with TCP. */
+                       goto tcp_transfer;
                } else
                        dns_zone_log(zone, ISC_LOG_INFO,
                                     "refresh: failure trying master "
@@ -3449,6 +3451,11 @@ refresh_callback(isc_task_t *task, isc_event_t *event) {
                             "refresh: unexpected rcode (%.*s) from "
                             "master %s (source %s)", (int)rb.used, rcode,
                             master, source);
+               /*
+                * Perhaps AXFR/IXFR is allowed even if SOA queries arn't.
+                */
+               if (msg->rcode == dns_rcode_refused)
+                       goto tcp_transfer;
                goto next_master;
        }