summaryrefslogtreecommitdiff
path: root/src/AbstractCommand.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2011-02-08 22:46:22 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2011-02-08 22:46:22 +0900
commitcf546810e464e0e53bfe5c6f710f768a5fafcf68 (patch)
tree8fb0c35b084d8d5a983a854e6dd64c08ca5045a6 /src/AbstractCommand.cc
parentaf4e47329b9049ac3f3b392f74c36499a2d4ada5 (diff)
Don't call DownloadEngine::markBadIPAddress() when DNS query was timeout.
Diffstat (limited to 'src/AbstractCommand.cc')
-rw-r--r--src/AbstractCommand.cc18
1 files 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."