From: bert hubert Date: Thu, 8 Jan 2015 12:01:30 +0000 (+0100) Subject: don't reprime the root because we discovered a delegation loop. No longer terminate... X-Git-Tag: rec-3.7.0-rc1~51 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2b1b40548462a139c756dc8b595b3fe4949aea22;p=pdns don't reprime the root because we discovered a delegation loop. No longer terminate a query when this happens. Do terminate a query if more than 50 throttled queries. Improve --trace output a bit. --- diff --git a/pdns/syncres.cc b/pdns/syncres.cc index df184f1b6..aaa9b7a4c 100644 --- a/pdns/syncres.cc +++ b/pdns/syncres.cc @@ -523,8 +523,9 @@ void SyncRes::getBestNSFromCache(const string &qname, const QType& qtype, set ns; *flawedNSSet = false; @@ -561,10 +562,12 @@ void SyncRes::getBestNSFromCache(const string &qname, const QType& qtype, set::const_iterator j=beenthere.begin();j!=beenthere.end();++j) { - LOG(prefix<qname<<"|"<qtype)<<" ("<<(unsigned int)j->bestns.size()<<")"<qname<<"|"<qtype)<<" ("<<(unsigned int)j->bestns.size()<<")"< 4) - throw ImmediateServFailException("query ended up doubting the root, reprimed"); + LOG(prefix< nameservers, string auth, } else { s_outqueries++; d_outqueries++; - if(d_outqueries > s_maxqperq) throw ImmediateServFailException("more than "+lexical_cast(s_maxqperq)+" (max-qperq) queries sent while resolving "+qname); + if(d_outqueries + d_throttledqueries > s_maxqperq) throw ImmediateServFailException("more than "+lexical_cast(s_maxqperq)+" (max-qperq) queries sent while resolving "+qname); TryTCP: if(doTCP) { LOG(prefix<toStringWithPort() <