summaryrefslogtreecommitdiffstats
path: root/usr.sbin/nsd/xfrd-disk.c
diff options
context:
space:
mode:
authorsthen <sthen@openbsd.org>2019-09-17 16:19:35 +0000
committersthen <sthen@openbsd.org>2019-09-17 16:19:35 +0000
commiteab1363e7f842fbdd8c55c4ea51e189c424f2966 (patch)
tree96d0ab8a762cda75fb5af91323d6135ca9af7ff2 /usr.sbin/nsd/xfrd-disk.c
parentZap unused h_errno (diff)
downloadwireguard-openbsd-eab1363e7f842fbdd8c55c4ea51e189c424f2966.tar.xz
wireguard-openbsd-eab1363e7f842fbdd8c55c4ea51e189c424f2966.zip
merge 4.2.2
Diffstat (limited to 'usr.sbin/nsd/xfrd-disk.c')
-rw-r--r--usr.sbin/nsd/xfrd-disk.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/usr.sbin/nsd/xfrd-disk.c b/usr.sbin/nsd/xfrd-disk.c
index 6ae8cd6249b..180302bbf17 100644
--- a/usr.sbin/nsd/xfrd-disk.c
+++ b/usr.sbin/nsd/xfrd-disk.c
@@ -289,6 +289,13 @@ xfrd_read_state(struct xfrd_state* xfrd)
zone->state = xfrd_zone_refreshing;
xfrd_set_refresh_now(zone);
}
+ if(timeout != 0 && filetime + timeout < (uint32_t)xfrd_time()) {
+ /* timeout is in the past, refresh the zone */
+ timeout = 0;
+ if(zone->state == xfrd_zone_ok)
+ zone->state = xfrd_zone_refreshing;
+ xfrd_set_refresh_now(zone);
+ }
/* There is a soa && current time is past expiry point */
if(soa_disk_acquired_read!=0 &&