]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Merge pull request #7643 from mind04/lmdb-fix
authorbert hubert <bert.hubert@netherlabs.nl>
Tue, 9 Apr 2019 15:22:09 +0000 (17:22 +0200)
committerGitHub <noreply@github.com>
Tue, 9 Apr 2019 15:22:09 +0000 (17:22 +0200)
auth: lmdbbackend, fix getAllDomains()

modules/lmdbbackend/lmdbbackend.cc
regression-tests/backends/lmdb-slave

index 8b9ca2bc67b1cc25f4259d9b1ef85323f071ab23..58c61e5c17e4b253e492d97d45616c8f7bdc1d21 100644 (file)
@@ -858,8 +858,17 @@ void LMDBBackend::getAllDomains(vector<DomainInfo> *domains, bool include_disabl
 
     auto txn = getRecordsROTransaction(iter.getID());
     if(!txn->txn.get(txn->db->dbi, co(di.id, g_rootdnsname, QType::SOA), val)) {
-      domains->push_back(di);
+      DNSResourceRecord rr;
+      serFromString(val.get<string_view>(), rr);
+
+      if(rr.content.size() >= 5 * sizeof(uint32_t)) {
+        uint32_t serial = *reinterpret_cast<uint32_t*>(&rr.content[rr.content.size() - (5 * sizeof(uint32_t))]);
+        di.serial = ntohl(serial);
+      }
+    } else if(!include_disabled) {
+      continue;
     }
+    domains->push_back(di);
   }
 }
 
index 7ef99f31d482be2204a53ce3ac2c1110eb0b1044..992a8bcf4a83deecef0d2c3c79ad202b430ef9da 100644 (file)
@@ -26,15 +26,14 @@ __EOF__
 
        $RUNWRAPPER $PDNS2 --daemon=no --local-port=$port --config-dir=. \
                --config-name=lmdb2 --socket-dir=./ --no-shuffle \
-               --slave --retrieval-threads=4 \
-               --slave-cycle-interval=300 --dname-processing &
+               --slave --dname-processing --api --api-key=secret &
 
        echo 'waiting for zones to be slaved'
        loopcount=0
        while [ $loopcount -lt 30 ]
        do
                sleep 5
-               present=$($PDNSUTIL --config-dir=. --config-name=lmdb2 list-all-zones slave | wc -l)
+               present=$(curl -s -S -H 'X-API-Key: secret' http://127.0.0.1:8081/api/v1/servers/localhost/zones  | jq -r '.[] | .serial' | grep -c -v '^0$')
                if [ $zones -eq $present ]
                then
                        break