From: Mark Andrews Date: Wed, 21 May 2003 14:15:32 +0000 (+0000) Subject: try tcp axfr/ixfr even if refresh fails/refused. X-Git-Tag: v9.3.4^3~10 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7767c2a7aa11ad10cafe876a9d1af6a3fccd33c1;p=thirdparty%2Fbind9.git try tcp axfr/ixfr even if refresh fails/refused. --- diff --git a/lib/dns/zone.c b/lib/dns/zone.c index 54fd1fd7388..c08ba48dc40 100644 --- a/lib/dns/zone.c +++ b/lib/dns/zone.c @@ -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 @@ -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; }