]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Heed the domain_id in list rather than try and recompute it. NFCI
authorMiod Vallat <miod.vallat@powerdns.com>
Wed, 9 Jul 2025 19:46:19 +0000 (21:46 +0200)
committerMiod Vallat <miod.vallat@powerdns.com>
Fri, 11 Jul 2025 07:29:28 +0000 (09:29 +0200)
Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
modules/lmdbbackend/lmdbbackend.cc
modules/lmdbbackend/lmdbbackend.hh

index fcf675ba1667484bc5b33eea38871f9aabb2ed5b..c12c073f8b325fe84f698c9047dc6dd23b65864e 100644 (file)
@@ -1717,36 +1717,23 @@ bool LMDBBackend::deleteDomain(const ZoneName& domain)
   return true;
 }
 
-bool LMDBBackend::list(const ZoneName& target, domainid_t /* id */, bool include_disabled)
+bool LMDBBackend::list(const ZoneName& target, domainid_t domain_id, bool include_disabled)
 {
+  d_lookupdomain = target;
   d_includedisabled = include_disabled;
 
-  DomainInfo di;
-  {
-    auto dtxn = d_tdomains->getROTransaction();
-    if ((di.id = dtxn.get<0>(target, di))) {
-      // cerr << "Found domain " << target << " on domain_id " << di.id << ", list requested " << id << endl;
-    }
-    else {
-      // cerr << "Did not find " << target << endl;
-      return false;
-    }
-  }
-
-  d_rotxn = getRecordsROTransaction(di.id, d_rwtxn);
+  d_rotxn = getRecordsROTransaction(domain_id, d_rwtxn);
   d_txnorder = true;
   d_getcursor = std::make_shared<MDBROCursor>(d_rotxn->txn->getCursor(d_rotxn->db->dbi));
 
-  compoundOrdername co;
-  std::string match = co(di.id);
+  compoundOrdername co; // NOLINT(readability-identifier-length)
+  std::string match = co(domain_id);
 
   MDBOutVal key, val;
   if (d_getcursor->prefix(match, key, val) != 0) {
     d_getcursor.reset();
   }
 
-  d_lookupdomain = target;
-
   // Make sure we start with fresh data
   d_currentrrset.clear();
   d_currentrrsetpos = 0;
index fdc08f14a816a67d73e1ad69d05fa7e65449cd84..c01f292e321c45439ae384d609f3598dc574f983 100644 (file)
@@ -74,7 +74,7 @@ public:
   ~LMDBBackend();
 
   unsigned int getCapabilities() override;
-  bool list(const ZoneName& target, domainid_t domainId, bool include_disabled) override;
+  bool list(const ZoneName& target, domainid_t domain_id, bool include_disabled) override;
 
   bool getDomainInfo(const ZoneName& domain, DomainInfo& info, bool getserial = true) override;
   bool createDomain(const ZoneName& domain, const DomainInfo::DomainKind kind, const vector<ComboAddress>& primaries, const string& account) override;