summaryrefslogtreecommitdiff
path: root/src/TrackerWatcherCommand.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2007-12-07 13:33:59 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2007-12-07 13:33:59 +0000
commitbb4bff2c2aee0f59e225f0879d30464bc20c46f1 (patch)
tree35d624ee40e7e3a0ac126c807b5446699d27ed52 /src/TrackerWatcherCommand.cc
parent3bb307b518fb50e0838d42129ba8c73852689258 (diff)
2007-12-07 Tatsuhiro Tsujikawa <tujikawa at rednoah com>
Fixed the bug#1845750; CTRL+C does not stop torrent. aria2 repeatedly sends stopped request when tracker returns error code. * src/AnnounceList.cc * test/AnnounceListTest.cc * src/AnnounceTier.h Added a message when ctrl-c is hit. Now second ctrl-c is also handled in signal handler. * src/RequestGroupMan.{h, cc} * src/RequestGroup.{h, cc} * src/MultiUrlRequestInfo.cc * src/DownloadEngine.cc * src/TrackerWatcherCommand.cc
Diffstat (limited to 'src/TrackerWatcherCommand.cc')
-rw-r--r--src/TrackerWatcherCommand.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/TrackerWatcherCommand.cc b/src/TrackerWatcherCommand.cc
index 66f6d06f..181c5a2b 100644
--- a/src/TrackerWatcherCommand.cc
+++ b/src/TrackerWatcherCommand.cc
@@ -64,6 +64,17 @@ TrackerWatcherCommand::~TrackerWatcherCommand() {}
bool TrackerWatcherCommand::execute() {
+ if(_requestGroup->isForceHaltRequested()) {
+ if(_trackerRequestGroup.isNull()) {
+ return true;
+ } else if(_trackerRequestGroup->getNumCommand() == 0 ||
+ _trackerRequestGroup->downloadFinished()) {
+ return true;
+ } else {
+ _trackerRequestGroup->setForceHaltRequested(true);
+ return false;
+ }
+ }
if(btAnnounce->noMoreAnnounce()) {
logger->debug("no more announce");
return true;