]> granicus.if.org Git - pdns/commitdiff
make pdnssec check-all-zones smarter about reusing database connections. Fixes #519...
authorPeter van Dijk <peter.van.dijk@netherlabs.nl>
Thu, 4 Oct 2012 07:22:50 +0000 (07:22 +0000)
committerPeter van Dijk <peter.van.dijk@netherlabs.nl>
Thu, 4 Oct 2012 07:22:50 +0000 (07:22 +0000)
git-svn-id: svn://svn.powerdns.com/pdns/trunk/pdns@2749 d19b8d6e-7fed-0310-83ef-9ca221ded41b

pdns/pdnssec.cc

index fea7d569400ae583c996761b8ccb1b00ce10c1e7..b197370d159d0da6b70d8c9eeceb45b764a82232 100644 (file)
@@ -259,9 +259,8 @@ void rectifyAllZones(DNSSECKeeper &dk)
   cout<<"Rectified "<<domainInfo.size()<<" zones."<<endl;
 }
 
-int checkZone(DNSSECKeeper& dk, const std::string& zone)
+int checkZone(UeberBackend *B, const std::string& zone)
 {
-  scoped_ptr<UeberBackend> B(new UeberBackend("default"));
   SOAData sd;
   sd.db=(DNSBackend*)-1;
   if(!B->getSOA(zone, sd)) {
@@ -327,7 +326,7 @@ int checkZone(DNSSECKeeper& dk, const std::string& zone)
   return numerrors;
 }
 
-int checkAllZones(DNSSECKeeper &dk
+int checkAllZones() 
 {
   scoped_ptr<UeberBackend> B(new UeberBackend("default"));
   vector<DomainInfo> domainInfo;
@@ -335,9 +334,8 @@ int checkAllZones(DNSSECKeeper &dk)
   B->getAllDomains(&domainInfo);
   int errors=0;
   BOOST_FOREACH(DomainInfo di, domainInfo) {
-    if (checkZone(dk, di.zone) > 0) {
+    if (checkZone(B.get(), di.zone) > 0) 
        errors++;
-    }
   }
   cout<<"Checked "<<domainInfo.size()<<" zones, "<<errors<<" had errors."<<endl;
   return 0;
@@ -771,10 +769,11 @@ try
       cerr << "Syntax: pdnssec check-zone ZONE"<<endl;
       return 0;
     }
-    exit(checkZone(dk, cmds[1]));
+    scoped_ptr<UeberBackend> B(new UeberBackend("default"));
+    exit(checkZone(B.get(), cmds[1]));
   }
   else if (cmds[0] == "check-all-zones") {
-    exit(checkAllZones(dk));
+    exit(checkAllZones());
   }
   else if (cmds[0] == "test-zone") {
     cerr << "Did you mean check-zone?"<<endl;