summaryrefslogtreecommitdiff
path: root/src/AbstractCommand.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-09-14 13:43:34 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-09-14 13:43:34 +0000
commit0680ac5e5ed2426ed01d735bca5fbb57d6c925bb (patch)
tree0763565d76353f8a29f5bc2dddfaa7595bb88112 /src/AbstractCommand.cc
parent81b2e6e1089f7765c246a7476df080db2f3499c6 (diff)
2008-09-14 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
If error event is received in epoll, then abort download immediately. * src/AbstractCommand.cc * src/Command.cc * src/Command.h * src/DownloadEngine.cc * src/PeerAbstractCommand.cc
Diffstat (limited to 'src/AbstractCommand.cc')
-rw-r--r--src/AbstractCommand.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/AbstractCommand.cc b/src/AbstractCommand.cc
index 874fe5aa..fa4d790f 100644
--- a/src/AbstractCommand.cc
+++ b/src/AbstractCommand.cc
@@ -107,7 +107,7 @@ bool AbstractCommand::execute() {
}
if((checkSocketIsReadable && _readEvent) ||
(checkSocketIsWritable && _writeEvent) ||
- _errorEvent ||
+ _hupEvent ||
#ifdef ENABLE_ASYNC_DNS
(nameResolverCheck && nameResolveFinished()) ||
#endif // ENABLE_ASYNC_DNS
@@ -136,6 +136,8 @@ bool AbstractCommand::execute() {
}
}
return executeInternal();
+ } else if(_errorEvent) {
+ throw DlRetryEx("Network problem has occurred.");
} else {
if(checkPoint.elapsed(timeout)) {
// timeout triggers ServerStat error state.