]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
auth: lmdbbackend, fix getAllDomains()
authorKees Monshouwer <mind04@monshouwer.org>
Sat, 30 Mar 2019 21:21:59 +0000 (22:21 +0100)
committermind04 <mind04@monshouwer.org>
Sat, 30 Mar 2019 21:23:08 +0000 (22:23 +0100)
modules/lmdbbackend/lmdbbackend.cc

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);
   }
 }