From: bert hubert Date: Mon, 22 Dec 2014 08:12:28 +0000 (+0100) Subject: this fixes an accidental commit, but leaves some parts in place. Specifically, our... X-Git-Tag: rec-3.7.0-rc1~98 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=76f190f2a0877cd79ede2994124c1a58dc69ae49;p=thirdparty%2Fpdns.git this fixes an accidental commit, but leaves some parts in place. Specifically, our 'beenthere' checks were accidentally refusing to re-ask anything if *either* ipv4 or ipv6 had asked them already. This is now sorta fixed. --- diff --git a/pdns/syncres.cc b/pdns/syncres.cc index 1aaa2d3979..dab3a5bb99 100644 --- a/pdns/syncres.cc +++ b/pdns/syncres.cc @@ -487,7 +487,7 @@ vector SyncRes::getAddrs(const string &qname, int depth, setqtype.getCode()==QType::A || i->qtype.getCode()==QType::AAAA) { ret.push_back(ComboAddress(i->content, 53)); @@ -497,7 +497,7 @@ vector SyncRes::getAddrs(const string &qname, int depth, set 1) { random_shuffle(ret.begin(), ret.end(), dns_random); @@ -576,7 +576,7 @@ void SyncRes::getBestNSFromCache(const string &qname, set&bes } } LOG(prefix< nameservers, string auth, pierceDontQuery=true; } else { - remoteIPs=getAddrs(*tns, depth+1, beenthere); + remoteIPs=getAddrs(*tns, depth+2, beenthere); pierceDontQuery=false; } @@ -905,7 +905,7 @@ int SyncRes::doResolveAt(set nameservers, string auth, } for(remoteIP = remoteIPs.begin(); remoteIP != remoteIPs.end(); ++remoteIP) { - LOG(prefix<toStringWithPort() <<" "<toStringWithPort() <<", asking '"<throttle.shouldThrottle(d_now.tv_sec, boost::make_tuple(*remoteIP, "", 0))) { @@ -965,7 +965,7 @@ int SyncRes::doResolveAt(set nameservers, string auth, continue; } - if(d_timeouts + 0.5*d_throttledqueries > 6.0 && d_timeouts > 2) throw ImmediateServFailException("Too much work resolving "+qname+"|"+qtype.getName()+", timeouts: "+boost::lexical_cast(d_timeouts) +", throttles: "+boost::lexical_cast(d_throttledqueries)); +// if(d_timeouts + 0.5*d_throttledqueries > 6.0 && d_timeouts > 2) throw ImmediateServFailException("Too much work resolving "+qname+"|"+qtype.getName()+", timeouts: "+boost::lexical_cast(d_timeouts) +", throttles: "+boost::lexical_cast(d_throttledqueries)); if(lwr.d_rcode==RCode::ServFail || lwr.d_rcode==RCode::Refused) { LOG(prefix<