While it makes sense to add/remove EDNS when the answer was generated
from the query itself, we should not be doing that when it has been
generated from a whole DNS packet, as it probably contains exactly
what the user intended it to.
Signed-off-by: Remi Gacogne <remi.gacogne@powerdns.com>
{
auto questionId = dnsQuestion.getHeader()->id;
dnsQuestion.getMutableData() = packet;
+ dnsQuestion.d_selfGeneratedFromPacket = true;
dnsdist::PacketMangling::editDNSHeaderFromPacket(dnsQuestion.getMutableData(), [questionId](dnsheader& header) {
header.id = questionId;
return true;
return true;
});
+ if (dnsQuestion.d_selfGeneratedFromPacket) {
+ return true;
+ }
return addEDNSToQueryTurnedResponse(dnsQuestion);
}
bool ecsOverride;
bool useECS{true};
bool asynchronous{false};
+ bool d_selfGeneratedFromPacket{false};
};
struct DownstreamState;