]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
rec: Don't increase the number of aggressive cache entries when replacing
authorRemi Gacogne <remi.gacogne@powerdns.com>
Mon, 22 Feb 2021 17:28:20 +0000 (18:28 +0100)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Mon, 22 Feb 2021 17:44:07 +0000 (18:44 +0100)
pdns/recursordist/aggressive_nsec.cc

index ca02233248d1f7996865b3578f06d5d9d1f01b86..db0f0736ecb1f97584414306e661ae1427c694f2 100644 (file)
@@ -298,13 +298,18 @@ void AggressiveNSECCache::insertNSEC(const DNSName& zone, const DNSName& owner,
     /* the TTL is already a TTD by now */
     if (!nsec3 && isWildcardExpanded(owner.countLabels(), signatures.at(0))) {
       DNSName realOwner = getNSECOwnerName(owner, signatures);
-      entry->d_entries.insert({record.d_content, signatures, std::move(realOwner), std::move(next), record.d_ttl});
+      auto pair = entry->d_entries.insert({record.d_content, signatures, std::move(realOwner), std::move(next), record.d_ttl});
+      if (pair.second) {
+        ++d_entriesCount;
+      }
     }
     else {
-      entry->d_entries.insert({record.d_content, signatures, owner, std::move(next), record.d_ttl});
+      auto pair = entry->d_entries.insert({record.d_content, signatures, owner, std::move(next), record.d_ttl});
+      if (pair.second) {
+        ++d_entriesCount;
+      }
     }
   }
-  ++d_entriesCount;
 }
 
 bool AggressiveNSECCache::getNSECBefore(time_t now, std::shared_ptr<AggressiveNSECCache::ZoneEntry>& zoneEntry, const DNSName& name, ZoneEntry::CacheEntry& entry)