From b0785d12513c45ab4d061169dee882f6e7779d50 Mon Sep 17 00:00:00 2001
From: Libor Peltan <libor.peltan@nic.cz>
Date: Thu, 26 Jan 2017 13:06:54 +0100
Subject: [PATCH] events/refresh: minimum timeout for next refresh

---
 src/knot/events/handlers/refresh.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/knot/events/handlers/refresh.c b/src/knot/events/handlers/refresh.c
index 1b1d15e88a..b6befba6eb 100644
--- a/src/knot/events/handlers/refresh.c
+++ b/src/knot/events/handlers/refresh.c
@@ -78,6 +78,7 @@
 
 #define BOOTSTRAP_MAXTIME (24*60*60)
 #define BOOTSTRAP_JITTER (30)
+#define NEXT_REFRESH_MIN (2)
 
 enum state {
 	REFRESH_STATE_INVALID = 0,
@@ -917,6 +918,11 @@ int event_refresh(conf_t *conf, zone_t *zone)
 		zone->timers.next_refresh = now + next;
 	}
 
+	/* Security: avoid flooding master. */
+	if (zone->timers.next_refresh < now + NEXT_REFRESH_MIN) {
+		zone->timers.next_refresh = now + NEXT_REFRESH_MIN;
+	}
+
 	/* Rechedule events. */
 	replan_from_timers(conf, zone);
 	if (updated) {
-- 
GitLab