]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
Invoke Namingway and change a bunch of data structure names. NFCI
authorMiod Vallat <miod.vallat@powerdns.com>
Mon, 29 Sep 2025 12:22:50 +0000 (14:22 +0200)
committerMiod Vallat <miod.vallat@powerdns.com>
Thu, 23 Oct 2025 09:14:07 +0000 (11:14 +0200)
This will make them look less awkward in the near future.

Signed-off-by: Miod Vallat <miod.vallat@powerdns.com>
(cherry picked from commit 416166997339ddc9431d5524328c54830244e36f)

modules/lmdbbackend/lmdbbackend.cc
modules/lmdbbackend/lmdbbackend.hh

index 041da07218c5c840506ea7fcbfb45889cbb1fe87..a0c53f995048e47debc8468bb50846d4117b552a 100644 (file)
@@ -669,28 +669,45 @@ bool LMDBBackend::upgradeToSchemav6(std::string& /* filename */)
 }
 
 // Serial number cache
-bool LMDBBackend::SerialCache::get(domainid_t domainid, uint32_t& serial) const
+
+// Retrieve the transient domain info for the given domain, if any
+bool LMDBBackend::TransientDomainInfoCache::get(domainid_t domainid, TransientDomainInfo& data) const
 {
-  if (auto iter = d_serials.find(domainid); iter != d_serials.end()) {
-    serial = iter->second;
+  if (auto iter = d_data.find(domainid); iter != d_data.end()) {
+    data = iter->second;
     return true;
   }
   return false;
 }
 
-void LMDBBackend::SerialCache::remove(domainid_t domainid)
+// Remove the transient domain info for the given domain
+void LMDBBackend::TransientDomainInfoCache::remove(domainid_t domainid)
 {
-  if (auto iter = d_serials.find(domainid); iter != d_serials.end()) {
-    d_serials.erase(iter);
+  if (auto iter = d_data.find(domainid); iter != d_data.end()) {
+    d_data.erase(iter);
   }
 }
 
-void LMDBBackend::SerialCache::update(domainid_t domainid, uint32_t serial)
+// Create or update the transient domain info for the given domain
+void LMDBBackend::TransientDomainInfoCache::update(domainid_t domainid, const TransientDomainInfo& data)
+{
+  d_data.insert_or_assign(domainid, data);
+}
+
+// Return the contents of the first element and remove it
+bool LMDBBackend::TransientDomainInfoCache::pop(domainid_t& domainid, TransientDomainInfo& data)
 {
-  d_serials.insert_or_assign(domainid, serial);
+  auto iter = d_data.begin();
+  if (iter == d_data.end()) {
+    return false;
+  }
+  domainid = iter->first;
+  data = iter->second;
+  (void)d_data.erase(iter);
+  return true;
 }
 
-SharedLockGuarded<LMDBBackend::SerialCache> LMDBBackend::s_notified_serial;
+SharedLockGuarded<LMDBBackend::TransientDomainInfoCache> LMDBBackend::s_transient_domain_info;
 
 LMDBBackend::LMDBBackend(const std::string& suffix)
 {
@@ -1171,20 +1188,22 @@ void LMDBBackend::consolidateDomainInfo(DomainInfo& info) const
 {
   // Update the notified_serial value if we have a cached value in memory.
   if (!d_write_notification_update) {
-    auto container = s_notified_serial.read_lock();
-    container->get(info.id, info.notified_serial);
+    auto container = s_transient_domain_info.read_lock();
+    TransientDomainInfo tdi;
+    container->get(info.id, tdi);
+    info.notified_serial = tdi.notified_serial;
   }
 }
 
 void LMDBBackend::writeDomainInfo(const DomainInfo& info)
 {
   if (!d_write_notification_update) {
-    uint32_t last_notified_serial{0};
-    auto container = s_notified_serial.write_lock();
-    container->get(info.id, last_notified_serial);
+    auto container = s_transient_domain_info.write_lock();
+    TransientDomainInfo tdi;
+    container->get(info.id, tdi);
     // Only remove the in-memory value if it has not been modified since the
     // DomainInfo data was set up.
-    if (last_notified_serial == info.notified_serial) {
+    if (tdi.notified_serial == info.notified_serial) {
       container->remove(info.id);
     }
   }
@@ -1805,7 +1824,7 @@ bool LMDBBackend::deleteDomain(const ZoneName& domain)
 
     // Remove zone
     {
-      auto container = s_notified_serial.write_lock();
+      auto container = s_transient_domain_info.write_lock();
       container->remove(static_cast<domainid_t>(id));
     }
     auto txn = d_tdomains->getRWTransaction();
@@ -2305,8 +2324,12 @@ void LMDBBackend::setNotified(domainid_t domain_id, uint32_t serial)
 
   DomainInfo info;
   if (findDomain(domain_id, info)) {
-    auto container = s_notified_serial.write_lock();
-    container->update(info.id, serial);
+    auto container = s_transient_domain_info.write_lock();
+    TransientDomainInfo tdi;
+    // will need container->get(info.id, tdi); once TransientDomainInfo grows
+    // more fields.
+    tdi.notified_serial = serial;
+    container->update(info.id, tdi);
   }
 }
 
index b4a8f1834e08d556d46d781c57fec96fb4e68af8..46cb1a19266b996ba62efcfe944fc0a4f71c2d7f 100644 (file)
@@ -356,18 +356,25 @@ private:
   static void deleteNSEC3RecordPair(const std::shared_ptr<RecordsRWTransaction>& txn, domainid_t domain_id, const DNSName& qname);
   void writeNSEC3RecordPair(const std::shared_ptr<RecordsRWTransaction>& txn, domainid_t domain_id, const DNSName& qname, const DNSName& ordername);
 
+  // Transient DomainInfo data, not necessarily synchronized with the
+  // database.
+  struct TransientDomainInfo
+  {
+    uint32_t notified_serial{};
+  };
   // Cache of DomainInfo notified_serial values
-  class SerialCache : public boost::noncopyable
+  class TransientDomainInfoCache : public boost::noncopyable
   {
   public:
-    bool get(domainid_t domainid, uint32_t& serial) const;
+    bool get(domainid_t domainid, TransientDomainInfo& data) const;
     void remove(domainid_t domainid);
-    void update(domainid_t domainid, uint32_t serial);
+    void update(domainid_t domainid, const TransientDomainInfo& data);
+    bool pop(domainid_t& domainid, TransientDomainInfo& data);
 
   private:
-    std::unordered_map<domainid_t, uint32_t> d_serials;
+    std::unordered_map<domainid_t, TransientDomainInfo> d_data;
   };
-  static SharedLockGuarded<SerialCache> s_notified_serial;
+  static SharedLockGuarded<TransientDomainInfoCache> s_transient_domain_info;
 
   ZoneName d_lookupdomain;
   DNSName d_lookupsubmatch;