diff options
author | sthen <sthen@openbsd.org> | 2019-09-17 16:19:35 +0000 |
---|---|---|
committer | sthen <sthen@openbsd.org> | 2019-09-17 16:19:35 +0000 |
commit | eab1363e7f842fbdd8c55c4ea51e189c424f2966 (patch) | |
tree | 96d0ab8a762cda75fb5af91323d6135ca9af7ff2 /usr.sbin/nsd/xfrd-disk.c | |
parent | Zap unused h_errno (diff) | |
download | wireguard-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.c | 7 |
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 && |