From 9f30cfb7dd26e5f4e4e4d955b783a0a52d4100bb Mon Sep 17 00:00:00 2001 From: Miod Vallat Date: Fri, 24 Jan 2025 09:38:32 +0100 Subject: [PATCH 1/2] Provide NAPTR replacement information as additional answers whenever possible. --- pdns/packethandler.cc | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/pdns/packethandler.cc b/pdns/packethandler.cc index 8483814d1954..00b8ad5d2e09 100644 --- a/pdns/packethandler.cc +++ b/pdns/packethandler.cc @@ -514,9 +514,11 @@ DNSName PacketHandler::doAdditionalServiceProcessing(const DNSName &firstTarget, } +// NOLINTNEXTLINE(readability-function-cognitive-complexity) void PacketHandler::doAdditionalProcessing(DNSPacket& p, std::unique_ptr& r) { DNSName content; + DNSZoneRecord dzr; std::unordered_set lookup; vector extraRecords; const auto& rrs = r->getRRS(); @@ -524,6 +526,7 @@ void PacketHandler::doAdditionalProcessing(DNSPacket& p, std::unique_ptr(rr.dr)->getNS(); @@ -546,10 +549,34 @@ void PacketHandler::doAdditionalProcessing(DNSPacket& p, std::unique_ptr(rr.dr); + auto flags = naptrContent->getFlags(); + toLowerInPlace(flags); + if (flags.find('a') != string::npos) { + content = naptrContent->getReplacement(); + DLOG(g_log<