]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
auth: Keep the existing bind backend zone if reload fails 4272/head
authorRemi Gacogne <remi.gacogne@powerdns.com>
Tue, 2 Aug 2016 13:49:11 +0000 (15:49 +0200)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Tue, 2 Aug 2016 13:50:49 +0000 (15:50 +0200)
modules/bindbackend/bindbackend2.cc

index d47abb0a3487a94f459761115e84db638afd9e14..8fe2529ff66ab24af463a12b80f76224356cf77b 100644 (file)
@@ -439,7 +439,7 @@ void Bind2Backend::alsoNotifies(const DNSName& domain, set<string> *ips)
 }
 
 // only parses, does NOT add to s_state!
-void Bind2Backend::parseZoneFile(BB2DomainInfo *bbd) 
+void Bind2Backend::parseZoneFile(BB2DomainInfo *bbd)
 {
   NSEC3PARAMRecordContent ns3pr;
   bool nsec3zone;
@@ -899,11 +899,12 @@ void Bind2Backend::queueReloadAndStore(unsigned int id)
   try {
     if(!safeGetBBDomainInfo(id, &bbold))
       return;
-    parseZoneFile(&bbold);
-    bbold.d_checknow=false;
-    bbold.d_wasRejectedLastReload=false;
-    safePutBBDomainInfo(bbold);
-    L<<Logger::Warning<<"Zone '"<<bbold.d_name<<"' ("<<bbold.d_filename<<") reloaded"<<endl;
+    BB2DomainInfo bbnew(bbold);
+    parseZoneFile(&bbnew);
+    bbnew.d_checknow=false;
+    bbnew.d_wasRejectedLastReload=false;
+    safePutBBDomainInfo(bbnew);
+    L<<Logger::Warning<<"Zone '"<<bbnew.d_name<<"' ("<<bbnew.d_filename<<") reloaded"<<endl;
   }
   catch(PDNSException &ae) {
     ostringstream msg;