]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
adjust updateDNSSECOrderNameAndAuth to prefix() lookup
authorPeter van Dijk <peter.van.dijk@powerdns.com>
Fri, 28 Feb 2025 10:23:35 +0000 (11:23 +0100)
committerPeter van Dijk <peter.van.dijk@powerdns.com>
Fri, 28 Feb 2025 14:46:27 +0000 (15:46 +0100)
(cherry picked from commit 251efe484a2b5a7c4c9f8aff5e22c60ac1b8bf1a)

modules/lmdbbackend/lmdbbackend.cc

index 88d718626b8c856466dbcef2ec62591da212c0e0..336cf03988c205d291374dc32b139b755736ac30 100644 (file)
@@ -2423,7 +2423,7 @@ bool LMDBBackend::updateDNSSECOrderNameAndAuth(uint32_t domain_id, const DNSName
 
   auto cursor = txn->txn->getCursor(txn->db->dbi);
   MDBOutVal key, val;
-  if (cursor.lower_bound(matchkey, key, val)) {
+  if (cursor.prefix(matchkey, key, val)) {
     // cout << "Could not find anything"<<endl;
     return false;
   }
@@ -2431,7 +2431,7 @@ bool LMDBBackend::updateDNSSECOrderNameAndAuth(uint32_t domain_id, const DNSName
   bool hasOrderName = !ordername.empty();
   bool needNSEC3 = hasOrderName;
 
-  for (; key.getNoStripHeader<StringView>().rfind(matchkey, 0) == 0;) {
+  do {
     vector<LMDBResourceRecord> lrrs;
 
     if (co.getQType(key.getNoStripHeader<StringView>()) != QType::NSEC3) {
@@ -2456,9 +2456,7 @@ bool LMDBBackend::updateDNSSECOrderNameAndAuth(uint32_t domain_id, const DNSName
       }
     }
 
-    if (cursor.next(key, val))
-      break;
-  }
+  } while (cursor.next(key, val) == 0);
 
   bool del = false;
   LMDBResourceRecord lrr;