From: Miod Vallat Date: Fri, 24 Jan 2025 08:38:32 +0000 (+0100) Subject: Provide NAPTR replacement information as additional answers whenever possible. X-Git-Tag: dnsdist-2.0.0-alpha1~121^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9f30cfb7dd26e5f4e4e4d955b783a0a52d4100bb;p=thirdparty%2Fpdns.git Provide NAPTR replacement information as additional answers whenever possible. --- diff --git a/pdns/packethandler.cc b/pdns/packethandler.cc index 8483814d19..00b8ad5d2e 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<