]> granicus.if.org Git - pdns/commitdiff
Reuse UeberBackend in DNSSECKeeper::rectifyZone()
authorPieter Lexis <pieter.lexis@powerdns.com>
Mon, 16 Oct 2017 10:31:38 +0000 (12:31 +0200)
committerPieter Lexis <pieter.lexis@powerdns.com>
Tue, 17 Oct 2017 14:17:27 +0000 (16:17 +0200)
But use a full UeberBackend when needed.

pdns/dbdnsseckeeper.cc

index 76088ba8a879c47b678bd977ae22bdc1138eeb5c..fe7570e8b29e9d523d5d8d24c03fe23a35ac634b 100644 (file)
@@ -593,10 +593,19 @@ bool DNSSECKeeper::rectifyZone(const DNSName& zone, string& error) {
     return false;
   }
 
-  UeberBackend B("default");
+  UeberBackend* B = d_keymetadb;
+  std::unique_ptr<UeberBackend> b;
+
+  if (d_ourDB) {
+    // We don't have a *full* Ueberbackend, just a key-only one.
+    // Let's create one and use it
+    b = std::unique_ptr<UeberBackend>(new UeberBackend());
+    B = b.get();
+  }
+
   SOAData sd;
 
-  if(!B.getSOAUncached(zone, sd)) {
+  if(!B->getSOAUncached(zone, sd)) {
     error = "No SOA known for '" + zone.toLogString() + "', is such a zone in the database?";
     return false;
   }