From cf546810e464e0e53bfe5c6f710f768a5fafcf68 Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Tue, 8 Feb 2011 22:46:22 +0900 Subject: [PATCH] Don't call DownloadEngine::markBadIPAddress() when DNS query was timeout. --- src/AbstractCommand.cc | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/AbstractCommand.cc b/src/AbstractCommand.cc index 9d573ab1..de89fec9 100644 --- a/src/AbstractCommand.cc +++ b/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."