From 98c3a8d4e3bc7ffca6745ea8983aaa2516cb6aa4 Mon Sep 17 00:00:00 2001 From: Miod Vallat Date: Fri, 25 Jul 2025 08:21:53 +0200 Subject: [PATCH] Factor logic checking for a zone metadata being equal to "1". Signed-off-by: Miod Vallat --- pdns/dbdnsseckeeper.cc | 28 ++++++++++------------------ pdns/dnsseckeeper.hh | 4 +++- pdns/packethandler.cc | 16 ++++------------ 3 files changed, 17 insertions(+), 31 deletions(-) diff --git a/pdns/dbdnsseckeeper.cc b/pdns/dbdnsseckeeper.cc index 2e834fc4c4..5c9d1f8063 100644 --- a/pdns/dbdnsseckeeper.cc +++ b/pdns/dbdnsseckeeper.cc @@ -73,28 +73,26 @@ bool DNSSECKeeper::isSecuredZone(const ZoneName& zone, bool useCache) return false; } -bool DNSSECKeeper::isPresigned(const ZoneName& name, bool useCache) +bool DNSSECKeeper::isMetadataOne(const ZoneName& name, const std::string& metaname, bool useCache) { string meta; if (useCache) { - getFromMeta(name, "PRESIGNED", meta); + getFromMeta(name, metaname, meta); } else { - getFromMetaNoCache(name, "PRESIGNED", meta); + getFromMetaNoCache(name, metaname, meta); } return meta=="1"; } +bool DNSSECKeeper::isPresigned(const ZoneName& name, bool useCache) +{ + return isMetadataOne(name, "PRESIGNED", useCache); +} + bool DNSSECKeeper::isSignalingZone(const ZoneName& name, bool useCache) { - string meta; - if (useCache) { - getFromMeta(name, "SIGNALING-ZONE", meta); - } - else { - getFromMetaNoCache(name, "SIGNALING-ZONE", meta); - } - return meta=="1"; + return isMetadataOne(name, "SIGNALING-ZONE", useCache); } bool DNSSECKeeper::addKey(const ZoneName& name, bool setSEPBit, int algorithm, int64_t& keyId, int bits, bool active, bool published) @@ -356,13 +354,7 @@ bool DNSSECKeeper::getNSEC3PARAM(const ZoneName& zname, NSEC3PARAMRecordContent* } } if(narrow != nullptr) { - if(useCache) { - getFromMeta(zname, "NSEC3NARROW", value); - } - else { - getFromMetaNoCache(zname, "NSEC3NARROW", value); - } - *narrow = (value=="1"); + *narrow = isMetadataOne(zname, "NSEC3NARROW", useCache); } return true; } diff --git a/pdns/dnsseckeeper.hh b/pdns/dnsseckeeper.hh index f0ee85bbb7..ad6f4e864c 100644 --- a/pdns/dnsseckeeper.hh +++ b/pdns/dnsseckeeper.hh @@ -242,11 +242,13 @@ public: static void setMaxEntries(size_t maxEntries); + bool isMetadataOne(const ZoneName& zname, const std::string& metaname, bool useCache); + + int64_t d_metaCacheCleanAction{0}; typedef std::map > METAValues; private: bool getFromMetaNoCache(const ZoneName& name, const std::string& kind, std::string& value); - int64_t d_metaCacheCleanAction{0}; bool d_metaUpdate{false}; struct KeyCacheEntry diff --git a/pdns/packethandler.cc b/pdns/packethandler.cc index c79b2be1ad..b76b45b86b 100644 --- a/pdns/packethandler.cc +++ b/pdns/packethandler.cc @@ -406,9 +406,7 @@ bool PacketHandler::getBestWildcard(DNSPacket& p, const DNSName &target, DNSName #ifdef HAVE_LUA_RECORDS bool doLua=g_doLuaRecord; if(!doLua) { - string val; - d_dk.getFromMeta(d_sd.zonename, "ENABLE-LUA-RECORDS", val); - doLua = (val=="1"); + doLua = d_dk.isMetadataOne(d_sd.zonename, "ENABLE-LUA-RECORDS", true); } #endif @@ -716,9 +714,7 @@ void PacketHandler::emitNSEC(std::unique_ptr& r, const DNSName& name, first = false; doLua = g_doLuaRecord; if (!doLua) { - string val; - d_dk.getFromMeta(d_sd.zonename, "ENABLE-LUA-RECORDS", val); - doLua = (val == "1"); + doLua = d_dk.isMetadataOne(d_sd.zonename, "ENABLE-LUA-RECORDS", true); } } @@ -808,9 +804,7 @@ void PacketHandler::emitNSEC3(DNSPacket& p, std::unique_ptr& r, const first = false; doLua = g_doLuaRecord; if (!doLua) { - string val; - d_dk.getFromMeta(d_sd.zonename, "ENABLE-LUA-RECORDS", val); - doLua = (val == "1"); + doLua = d_dk.isMetadataOne(d_sd.zonename, "ENABLE-LUA-RECORDS", true); } } @@ -1762,9 +1756,7 @@ bool PacketHandler::opcodeQueryInner2(DNSPacket& pkt, queryState &state, bool re #ifdef HAVE_LUA_RECORDS if(!doLua) { - string val; - d_dk.getFromMeta(d_sd.zonename, "ENABLE-LUA-RECORDS", val); - doLua = (val=="1"); + doLua = d_dk.isMetadataOne(d_sd.zonename, "ENABLE-LUA-RECORDS", true); } #endif -- 2.47.2