diff --git a/CHANGES b/CHANGES index 3eb045a7ce..58d1190684 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,6 @@ +3959. [bug] Updates could be lost if they arrived immediately + after a rndc thaw. [RT #37233] + 3958. [bug] Detect when writeable files have multiple references in named.conf. [RT #37172] diff --git a/lib/dns/zt.c b/lib/dns/zt.c index f2f3af2f25..985e67a457 100644 --- a/lib/dns/zt.c +++ b/lib/dns/zt.c @@ -395,16 +395,16 @@ freezezones(dns_zone_t *zone, void *uap) { result = DNS_R_FROZEN; if (result == ISC_R_SUCCESS) result = dns_zone_flush(zone); + if (result == ISC_R_SUCCESS) + dns_zone_setupdatedisabled(zone, freeze); } else { if (frozen) { - result = dns_zone_load(zone); + result = dns_zone_loadandthaw(zone); if (result == DNS_R_CONTINUE || result == DNS_R_UPTODATE) result = ISC_R_SUCCESS; } } - if (result == ISC_R_SUCCESS) - dns_zone_setupdatedisabled(zone, freeze); view = dns_zone_getview(zone); if (strcmp(view->name, "_bind") == 0 || strcmp(view->name, "_default") == 0)