Sfoglia il codice sorgente

Don't call DownloadEngine::markBadIPAddress() when DNS query was timeout.

Tatsuhiro Tsujikawa 14 anni fa
parent
commit
cf546810e4
1 ha cambiato i file con 11 aggiunte e 7 eliminazioni
  1. 11 7
      src/AbstractCommand.cc

+ 11 - 7
src/AbstractCommand.cc

@@ -240,13 +240,17 @@ bool AbstractCommand::execute() {
           e_->getRequestGroupMan()->getOrCreateServerStat(req_->getHost(),
                                                           req_->getProtocol());
         ss->setError();
-        // Purging IP address cache to renew IP address.
-        A2_LOG_DEBUG(fmt("CUID#%lld - Marking IP address %s as bad",
-                         getCuid(),
-                         req_->getConnectedAddr().c_str()));
-        e_->markBadIPAddress(req_->getConnectedHostname(),
-                             req_->getConnectedAddr(),
-                             req_->getConnectedPort());
+        // When DNS query was timeout, req_->getConnectedAddr() is
+        // empty.
+        if(!req_->getConnectedAddr().empty()) {
+          // Purging IP address cache to renew IP address.
+          A2_LOG_DEBUG(fmt("CUID#%lld - Marking IP address %s as bad",
+                           getCuid(),
+                           req_->getConnectedAddr().c_str()));
+          e_->markBadIPAddress(req_->getConnectedHostname(),
+                               req_->getConnectedAddr(),
+                               req_->getConnectedPort());
+        }
         if(e_->findCachedIPAddress
            (req_->getConnectedHostname(), req_->getConnectedPort()).empty()) {
           A2_LOG_DEBUG(fmt("CUID#%lld - All IP addresses were marked bad."