]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dnsdist: Apply clang-tidy recommendations to the packet cache code 16505/head
authorRemi Gacogne <remi.gacogne@powerdns.com>
Fri, 14 Nov 2025 09:36:00 +0000 (10:36 +0100)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Fri, 14 Nov 2025 09:36:00 +0000 (10:36 +0100)
Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
pdns/dnsdistdist/dnsdist-cache.cc
pdns/dnsdistdist/dnsdist-cache.hh

index e0adb1cb03e8b736a3056cfe1a308443a2623638..64bdf7274be430f54f88483b87ba020017a4ab0b 100644 (file)
@@ -30,7 +30,6 @@
 #include "packetcache.hh"
 #include "base64.hh"
 
-// NOLINTNEXTLINE(bugprone-easily-swappable-parameters): too cumbersome to change at this point
 DNSDistPacketCache::DNSDistPacketCache(CacheSettings settings) :
   d_settings(std::move(settings))
 {
@@ -461,7 +460,7 @@ uint32_t DNSDistPacketCache::getMinTTL(const char* packet, uint16_t length, bool
   return getDNSPacketMinTTL(packet, length, seenNoDataSOA);
 }
 
-uint32_t DNSDistPacketCache::getKey(const DNSName::string_t& qname, size_t qnameWireLength, const PacketBuffer& packet, bool receivedOverUDP)
+uint32_t DNSDistPacketCache::getKey(const DNSName::string_t& qname, size_t qnameWireLength, const PacketBuffer& packet, bool receivedOverUDP) const
 {
   uint32_t result = 0;
   /* skip the query ID */
index 71239a4d3ec0f9dcb053366952a483c0d4bb653f..c3e59c03e73edeadab0dd480fdceab675102ab60 100644 (file)
@@ -59,39 +59,39 @@ public:
 
   void insert(uint32_t key, const boost::optional<Netmask>& subnet, uint16_t queryFlags, bool dnssecOK, const DNSName& qname, uint16_t qtype, uint16_t qclass, const PacketBuffer& response, bool receivedOverUDP, uint8_t rcode, boost::optional<uint32_t> tempFailureTTL);
   bool get(DNSQuestion& dnsQuestion, uint16_t queryId, uint32_t* keyOut, boost::optional<Netmask>& subnet, bool dnssecOK, bool receivedOverUDP, uint32_t allowExpired = 0, bool skipAging = false, bool truncatedOK = true, bool recordMiss = true);
-  size_t purgeExpired(size_t upTo, const time_t now);
+  size_t purgeExpired(size_t upTo, time_t now);
   size_t expunge(size_t upTo = 0);
   size_t expungeByName(const DNSName& name, uint16_t qtype = QType::ANY, bool suffixMatch = false);
-  bool isFull();
-  string toString();
-  uint64_t getSize();
-  uint64_t getHits() const { return d_hits.load(); }
-  uint64_t getMisses() const { return d_misses.load(); }
-  uint64_t getDeferredLookups() const { return d_deferredLookups.load(); }
-  uint64_t getDeferredInserts() const { return d_deferredInserts.load(); }
-  uint64_t getLookupCollisions() const { return d_lookupCollisions.load(); }
-  uint64_t getInsertCollisions() const { return d_insertCollisions.load(); }
-  uint64_t getMaxEntries() const { return d_settings.d_maxEntries; }
-  uint64_t getTTLTooShorts() const { return d_ttlTooShorts.load(); }
-  uint64_t getCleanupCount() const { return d_cleanupCount.load(); }
-  uint64_t getEntriesCount();
+  [[nodiscard]] bool isFull();
+  [[nodiscard]] string toString();
+  [[nodiscard]] uint64_t getSize();
+  [[nodiscard]] uint64_t getHits() const { return d_hits.load(); }
+  [[nodiscard]] uint64_t getMisses() const { return d_misses.load(); }
+  [[nodiscard]] uint64_t getDeferredLookups() const { return d_deferredLookups.load(); }
+  [[nodiscard]] uint64_t getDeferredInserts() const { return d_deferredInserts.load(); }
+  [[nodiscard]] uint64_t getLookupCollisions() const { return d_lookupCollisions.load(); }
+  [[nodiscard]] uint64_t getInsertCollisions() const { return d_insertCollisions.load(); }
+  [[nodiscard]] uint64_t getMaxEntries() const { return d_settings.d_maxEntries; }
+  [[nodiscard]] uint64_t getTTLTooShorts() const { return d_ttlTooShorts.load(); }
+  [[nodiscard]] uint64_t getCleanupCount() const { return d_cleanupCount.load(); }
+  [[nodiscard]] uint64_t getEntriesCount();
   uint64_t dump(int fileDesc, bool rawResponse = false);
 
   /* get the list of domains (qnames) that contains the given address in an A or AAAA record */
-  std::set<DNSName> getDomainsContainingRecords(const ComboAddress& addr);
+  [[nodiscard]] std::set<DNSName> getDomainsContainingRecords(const ComboAddress& addr);
   /* get the list of IP addresses contained in A or AAAA for a given domains (qname) */
-  std::set<ComboAddress> getRecordsForDomain(const DNSName& domain);
+  [[nodiscard]] std::set<ComboAddress> getRecordsForDomain(const DNSName& domain);
 
-  bool isECSParsingEnabled() const { return d_settings.d_parseECS; }
+  [[nodiscard]] bool isECSParsingEnabled() const { return d_settings.d_parseECS; }
 
-  bool keepStaleData() const
+  [[nodiscard]] bool keepStaleData() const
   {
     return d_settings.d_keepStaleData;
   }
 
-  size_t getMaximumEntrySize() const { return d_settings.d_maximumEntrySize; }
+  [[nodiscard]] size_t getMaximumEntrySize() const { return d_settings.d_maximumEntrySize; }
 
-  uint32_t getKey(const DNSName::string_t& qname, size_t qnameWireLength, const PacketBuffer& packet, bool receivedOverUDP);
+  uint32_t getKey(const DNSName::string_t& qname, size_t qnameWireLength, const PacketBuffer& packet, bool receivedOverUDP) const;
 
   static uint32_t getMinTTL(const char* packet, uint16_t length, bool* seenNoDataSOA);
   static bool getClientSubnet(const PacketBuffer& packet, size_t qnameWireLength, boost::optional<Netmask>& subnet);
@@ -99,7 +99,7 @@ public:
 private:
   struct CacheValue
   {
-    time_t getTTD() const { return validity; }
+    [[nodiscard]] time_t getTTD() const { return validity; }
     std::string value;
     DNSName qname;
     boost::optional<Netmask> subnet;
@@ -116,27 +116,37 @@ private:
   class CacheShard
   {
   public:
-    CacheShard()
+    CacheShard() = default;
+    CacheShard(CacheShard&& /* old */) noexcept
     {
     }
     CacheShard(const CacheShard& /* old */)
     {
     }
+    CacheShard& operator=(CacheShard&& /* old */) noexcept
+    {
+      return *this;
+    }
+    CacheShard& operator=(const CacheShard& /* old */)
+    {
+      return *this;
+    }
+    ~CacheShard() = default;
 
     void setSize(size_t maxSize)
     {
       d_map.write_lock()->reserve(maxSize);
     }
 
-    SharedLockGuarded<std::unordered_map<uint32_t, CacheValue>> d_map;
+    SharedLockGuarded<std::unordered_map<uint32_t, CacheValue>> d_map{};
     std::atomic<uint64_t> d_entriesCount{0};
   };
 
-  bool cachedValueMatches(const CacheValue& cachedValue, uint16_t queryFlags, const DNSName& qname, uint16_t qtype, uint16_t qclass, bool receivedOverUDP, bool dnssecOK, const boost::optional<Netmask>& subnet) const;
-  uint32_t getShardIndex(uint32_t key) const;
+  [[nodiscard]] bool cachedValueMatches(const CacheValue& cachedValue, uint16_t queryFlags, const DNSName& qname, uint16_t qtype, uint16_t qclass, bool receivedOverUDP, bool dnssecOK, const boost::optional<Netmask>& subnet) const;
+  [[nodiscard]] uint32_t getShardIndex(uint32_t key) const;
   bool insertLocked(std::unordered_map<uint32_t, CacheValue>& map, uint32_t key, CacheValue& newValue);
 
-  std::vector<CacheShard> d_shards;
+  std::vector<CacheShard> d_shards{};
 
   pdns::stat_t d_deferredLookups{0};
   pdns::stat_t d_deferredInserts{0};