From d9eb2a063d0ee76ee02c687e097a16b48c33f2bb Mon Sep 17 00:00:00 2001 From: Nick Peng Date: Sun, 31 Mar 2019 01:37:01 +0800 Subject: [PATCH] when service pause for a long time, force invalidate cache after system resume --- src/dns_server.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/dns_server.c b/src/dns_server.c index c7ec1c6..1858ca7 100644 --- a/src/dns_server.c +++ b/src/dns_server.c @@ -2222,8 +2222,22 @@ static void _dns_server_tcp_idle_check(void) static void _dns_server_period_run_second(void) { static unsigned int sec = 0; + static time_t last = 0; + time_t now; sec++; + time(&now); + if (last == 0) { + last = now; + } + + if (now - 180 > last) { + dns_cache_invalidate(NULL, 0); + tlog(TLOG_WARN, "Service paused for 180s, force invalidate cache."); + } + + last = now; + if (sec % 2 == 0) { if (dns_conf_prefetch) { /* do pre-fetching */