From c2f4982b39bb268255ae9a686933e383770f5e8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Gr=C3=B6ber?= Date: Sat, 25 Sep 2021 12:40:04 +0200 Subject: [PATCH 1/2] ixfr: Fix fallback to axfr in XFR_TYPE_ERROR case --- src/knot/events/handlers/refresh.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/knot/events/handlers/refresh.c b/src/knot/events/handlers/refresh.c index 88c8daf27..865ef6deb 100644 --- a/src/knot/events/handlers/refresh.c +++ b/src/knot/events/handlers/refresh.c @@ -1196,12 +1196,12 @@ static int try_refresh(conf_t *conf, zone_t *zone, const conf_remote_t *master, int timeout = conf->cache.srv_tcp_remote_io_timeout; - int ret; + int ret, i=0; // while loop runs 0x or 1x; IXFR to AXFR failover while (ret = knot_requestor_exec(&requestor, req, timeout), ret = (data.ret == KNOT_EOK ? ret : data.ret), - ixfr_error_failover(ret) && data.xfr_type == XFR_TYPE_IXFR && + ixfr_error_failover(ret) && i++ <= 1 && data.state != STATE_SOA_QUERY) { REFRESH_LOG(LOG_WARNING, data.zone->name, data.remote, "fallback to AXFR (%s)", knot_strerror(ret)); -- 2.30.2