From 73af5f28797e948450b91d253c76d4adf344685e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Ensar=20Saraj=C4=8Di=C4=87?= Date: Mon, 29 Dec 2025 19:34:07 +0100 Subject: [PATCH] dnsdist: use new object in `addExtendedDNSError` MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Ensar Sarajčić --- pdns/dnsdistdist/dnsdist-edns.cc | 6 +++--- pdns/dnsdistdist/dnsdist-edns.hh | 2 +- pdns/dnsdistdist/dnsdist-tcp.cc | 2 +- pdns/dnsdistdist/dnsdist.cc | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/pdns/dnsdistdist/dnsdist-edns.cc b/pdns/dnsdistdist/dnsdist-edns.cc index 807c08468b..3074658510 100644 --- a/pdns/dnsdistdist/dnsdist-edns.cc +++ b/pdns/dnsdistdist/dnsdist-edns.cc @@ -57,7 +57,7 @@ std::pair, std::optional> getExtendedDNSErr return {infoCode, std::move(extraText)}; } -bool addExtendedDNSError(PacketBuffer& packet, size_t maximumPacketSize, uint16_t code, const std::string& extraStatus, bool clearExisting) +bool addExtendedDNSError(PacketBuffer& packet, size_t maximumPacketSize, const SetExtendedDNSErrorOperation& setErrorOp) { uint16_t optStart = 0; size_t optLen = 0; @@ -70,7 +70,7 @@ bool addExtendedDNSError(PacketBuffer& packet, size_t maximumPacketSize, uint16_ return false; } - EDNSExtendedError ede{.infoCode = code, .extraText = extraStatus}; + EDNSExtendedError ede{.infoCode = setErrorOp.error.infoCode, .extraText = setErrorOp.error.extraText}; auto edeOptionPayload = makeEDNSExtendedErrorOptString(ede); std::string edeOption; generateEDNSOption(EDNSOptionCode::EXTENDEDERROR, edeOptionPayload, edeOption); @@ -80,7 +80,7 @@ bool addExtendedDNSError(PacketBuffer& packet, size_t maximumPacketSize, uint16_ PacketBuffer newContent; bool ednsAdded = false; bool edeAdded = false; - if (!slowRewriteEDNSOptionInQueryWithRecords(packet, newContent, ednsAdded, EDNSOptionCode::EXTENDEDERROR, edeAdded, clearExisting, !clearExisting, edeOption)) { + if (!slowRewriteEDNSOptionInQueryWithRecords(packet, newContent, ednsAdded, EDNSOptionCode::EXTENDEDERROR, edeAdded, setErrorOp.clearExisting, !setErrorOp.clearExisting, edeOption)) { return false; } diff --git a/pdns/dnsdistdist/dnsdist-edns.hh b/pdns/dnsdistdist/dnsdist-edns.hh index cb518b2069..f1e89221af 100644 --- a/pdns/dnsdistdist/dnsdist-edns.hh +++ b/pdns/dnsdistdist/dnsdist-edns.hh @@ -37,5 +37,5 @@ struct SetExtendedDNSErrorOperation }; std::pair, std::optional> getExtendedDNSError(const PacketBuffer& packet); -bool addExtendedDNSError(PacketBuffer& packet, size_t maximumPacketSize, uint16_t code, const std::string& extraStatus, bool clearExisting); +bool addExtendedDNSError(PacketBuffer& packet, size_t maximumPacketSize, const SetExtendedDNSErrorOperation& setErrorOp); } diff --git a/pdns/dnsdistdist/dnsdist-tcp.cc b/pdns/dnsdistdist/dnsdist-tcp.cc index 295d4fa8cb..a3b40a82ed 100644 --- a/pdns/dnsdistdist/dnsdist-tcp.cc +++ b/pdns/dnsdistdist/dnsdist-tcp.cc @@ -1396,7 +1396,7 @@ static bool processXFRResponse(DNSResponse& dnsResponse) if (dnsResponse.ids.d_extendedErrors) { for (auto ede : *dnsResponse.ids.d_extendedErrors) { - dnsdist::edns::addExtendedDNSError(dnsResponse.getMutableData(), dnsResponse.getMaximumSize(), ede.error.infoCode, ede.error.extraText, ede.clearExisting); + dnsdist::edns::addExtendedDNSError(dnsResponse.getMutableData(), dnsResponse.getMaximumSize(), ede); } } diff --git a/pdns/dnsdistdist/dnsdist.cc b/pdns/dnsdistdist/dnsdist.cc index 72dc95191d..4a84f663fb 100644 --- a/pdns/dnsdistdist/dnsdist.cc +++ b/pdns/dnsdistdist/dnsdist.cc @@ -567,7 +567,7 @@ bool processResponseAfterRules(PacketBuffer& response, DNSResponse& dnsResponse, if (dnsResponse.ids.d_extendedErrors) { for (auto ede : *dnsResponse.ids.d_extendedErrors) { - dnsdist::edns::addExtendedDNSError(dnsResponse.getMutableData(), dnsResponse.getMaximumSize(), ede.error.infoCode, ede.error.extraText, ede.clearExisting); + dnsdist::edns::addExtendedDNSError(dnsResponse.getMutableData(), dnsResponse.getMaximumSize(), ede); } } @@ -1407,7 +1407,7 @@ static bool prepareOutgoingResponse([[maybe_unused]] const ClientState& clientSt if (dnsResponse.ids.d_extendedErrors) { for (auto ede : *dnsResponse.ids.d_extendedErrors) { - dnsdist::edns::addExtendedDNSError(dnsResponse.getMutableData(), dnsResponse.getMaximumSize(), ede.error.infoCode, ede.error.extraText, ede.clearExisting); + dnsdist::edns::addExtendedDNSError(dnsResponse.getMutableData(), dnsResponse.getMaximumSize(), ede); } } -- 2.47.3