diff --git a/src/knot/events/handlers/refresh.c b/src/knot/events/handlers/refresh.c index 1b1d15e88a638f4e6b3a13678dda8ad58f21f10a..b6befba6ebe1f35942675c50e7cef49906e72b49 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) {