]> granicus.if.org Git - pdns/commitdiff
Winfried Angele submitted a patch that (a) treats REFUSED more like SERVFAIL (b)...
authorPeter van Dijk <peter.van.dijk@netherlabs.nl>
Thu, 24 Jan 2013 11:39:51 +0000 (11:39 +0000)
committerPeter van Dijk <peter.van.dijk@netherlabs.nl>
Thu, 24 Jan 2013 11:39:51 +0000 (11:39 +0000)
git-svn-id: svn://svn.powerdns.com/pdns/trunk/pdns@3074 d19b8d6e-7fed-0310-83ef-9ca221ded41b

pdns/syncres.cc

index 6352e097a6289402bcbb379f1382b671d6e9ecf4..1f76320fb98baf1854c12c2309fde76fde3f4337 100644 (file)
@@ -929,6 +929,12 @@ int SyncRes::doResolveAt(set<string, CIStringCompare> nameservers, string auth,
               }
               continue;
             }
+
+            if(lwr.d_rcode==RCode::ServFail || lwr.d_rcode==RCode::Refused) {
+              LOG(prefix<<qname<<": "<<tns->first<<" returned a "<< (lwr.d_rcode==RCode::ServFail ? "ServFail" : "Refused") << ", trying sibling IP or NS"<<endl);
+              t_sstorage->throttle.throttle(d_now.tv_sec,make_tuple(*remoteIP, qname, qtype.getCode()),60,3); // servfail or refused
+              continue;
+            }
             
             break;  // this IP address worked!
           wasLame:; // well, it didn't
@@ -950,11 +956,6 @@ int SyncRes::doResolveAt(set<string, CIStringCompare> nameservers, string auth,
           return RCode::ServFail;
         }
         
-        if(lwr.d_rcode==RCode::ServFail) {
-          LOG(prefix<<qname<<": "<<tns->first<<" returned a ServFail, trying sibling IP or NS"<<endl);
-          t_sstorage->throttle.throttle(d_now.tv_sec,make_tuple(*remoteIP, qname, qtype.getCode()),60,3); // servfail
-          continue;
-        }
         LOG(prefix<<qname<<": Got "<<(unsigned int)lwr.d_result.size()<<" answers from "<<tns->first<<" ("<< remoteIP->toString() <<"), rcode="<<lwr.d_rcode<<", aa="<<lwr.d_aabit<<", in "<<lwr.d_usec/1000<<"ms"<<endl);
 
         /*  // for you IPv6 fanatics :-)