use-alt-transfer-source when the master refused soa queries. [RT #5528]

This commit is contained in:
Mark Andrews
2003-04-22 04:03:25 +00:00
parent 1c935a070e
commit 64655588e7

View File

@@ -15,7 +15,7 @@
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: zone.c,v 1.387 2003/04/17 12:11:39 marka Exp $ */
/* $Id: zone.c,v 1.388 2003/04/22 04:03:25 marka Exp $ */
#include <config.h>
@@ -3620,15 +3620,24 @@ refresh_callback(isc_task_t *task, isc_event_t *event) {
zone->curmaster++;
DNS_ZONE_CLRFLAG(zone, DNS_ZONEFLG_NOEDNS);
if (zone->curmaster >= zone->masterscnt) {
if (DNS_ZONE_OPTION(zone, DNS_ZONEOPT_USEALTXFRSRC) &&
!DNS_ZONE_FLAG(zone, DNS_ZONEFLG_USEALTXFRSRC)) {
DNS_ZONE_SETFLAG(zone, DNS_ZONEFLG_USEALTXFRSRC);
zone->curmaster = 0;
goto requeue;
}
DNS_ZONE_CLRFLAG(zone, DNS_ZONEFLG_REFRESH);
if (DNS_ZONE_FLAG(zone, DNS_ZONEFLG_NEEDREFRESH)) {
DNS_ZONE_CLRFLAG(zone, DNS_ZONEFLG_NEEDREFRESH);
zone->refreshtime = now;
}
DNS_ZONE_CLRFLAG(zone, DNS_ZONEFLG_USEALTXFRSRC);
zone_settimer(zone, &now);
UNLOCK_ZONE(zone);
goto detach;
}
requeue:
queue_soa_query(zone);
UNLOCK_ZONE(zone);
goto detach;