From fa827173df3418bc56774aa528f7ca30fd0ee17c Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Wed, 1 Oct 2014 06:59:19 +1000 Subject: [PATCH] 3959. [bug] Updates could be lost if they arrived immediately after a rndc thaw. [RT #37233] --- CHANGES | 3 +++ lib/dns/zt.c | 6 +++--- 2 files changed, 6 insertions(+), 3 deletions(-) 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)