From: Otto Moerbeek Date: Tue, 28 Mar 2023 09:09:40 +0000 (+0200) Subject: rec: reset EDE in context when starting to resolve X-Git-Tag: rec-4.9.0-alpha1~25^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=64d2baa740c011a1f169924b7f9dafcd8104eaf6;p=thirdparty%2Fpdns.git rec: reset EDE in context when starting to resolve Fixes #12691 There is a slight complication here: If QM found an error, a retry without QM is done, and that clears the EDE but might not find an EDE itself (since it does not walk all labels). So remember the original EDE and put it back in place if the last effort attempt failed but did not set an EDE. --- diff --git a/pdns/recursordist/syncres.cc b/pdns/recursordist/syncres.cc index f7670f08c6..ba0741d1a3 100644 --- a/pdns/recursordist/syncres.cc +++ b/pdns/recursordist/syncres.cc @@ -1768,11 +1768,18 @@ int SyncRes::doResolve(const DNSName& qname, const QType qtype, vector& ret, unsigned int depth, set& beenthere, Context& context, bool* fromCache, StopAtDelegation* stopAtDelegation) { + context.extendedError.reset(); auto prefix = getPrefix(depth); LOG(prefix << qname << ": Wants " << (d_doDNSSEC ? "" : "NO ") << "DNSSEC processing, " << (d_requireAuthData ? "" : "NO ") << "auth data required by query for " << qtype << endl);