summaryrefslogtreecommitdiffstats
path: root/debian/patches
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches')
-rw-r--r--debian/patches/100-ixfr-Fix-fallback-to-axfr-in-XFR_TYPE_ERROR-case.patch31
-rw-r--r--debian/patches/series1
2 files changed, 32 insertions, 0 deletions
diff --git a/debian/patches/100-ixfr-Fix-fallback-to-axfr-in-XFR_TYPE_ERROR-case.patch b/debian/patches/100-ixfr-Fix-fallback-to-axfr-in-XFR_TYPE_ERROR-case.patch
new file mode 100644
index 0000000..af87999
--- /dev/null
+++ b/debian/patches/100-ixfr-Fix-fallback-to-axfr-in-XFR_TYPE_ERROR-case.patch
@@ -0,0 +1,31 @@
+From c2f4982b39bb268255ae9a686933e383770f5e8f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Daniel=20Gr=C3=B6ber?= <dxld@darkboxed.org>
+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
+
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..b4e2eda
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1 @@
+100-ixfr-Fix-fallback-to-axfr-in-XFR_TYPE_ERROR-case.patch