summaryrefslogtreecommitdiff
path: root/src/AbstractCommand.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2006-03-01 02:26:29 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2006-03-01 02:26:29 +0000
commitbc1cf6ed2d4c7ef52263a781359a73edb546970d (patch)
tree53e682f047a0465761b415708669b27cc981ce33 /src/AbstractCommand.cc
parentd770d1c40af48bb8f288b3ee4c9670289d9c2e45 (diff)
* AbstractCommand.cc:
* DownloadCommand.{h, cc}: Aborted downloading commands now properly unregister its cuid from SegmentMan. * DownloadEngine.cc: .aria2 file was written when a downloading failed with errors.
Diffstat (limited to 'src/AbstractCommand.cc')
-rw-r--r--src/AbstractCommand.cc15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/AbstractCommand.cc b/src/AbstractCommand.cc
index 6fe1d2ae..7caa1fa7 100644
--- a/src/AbstractCommand.cc
+++ b/src/AbstractCommand.cc
@@ -99,11 +99,14 @@ bool AbstractCommand::execute() {
return true;
} catch(DlRetryEx* err) {
e->logger->error(MSG_RESTARTING_DOWNLOAD, err, cuid);
- delete(err);
- //req->resetUrl();
req->addTryCount();
- if(e->option->getAsInt(PREF_MAX_TRIES) != 0 &&
- req->getTryCount() >= e->option->getAsInt(PREF_MAX_TRIES)) {
+ bool isAbort = e->option->getAsInt(PREF_MAX_TRIES) != 0 &&
+ req->getTryCount() >= e->option->getAsInt(PREF_MAX_TRIES);
+ if(isAbort) {
+ onAbort(err);
+ }
+ delete(err);
+ if(isAbort) {
e->logger->error(MSG_MAX_TRY, cuid, req->getTryCount());
return true;
} else {
@@ -123,7 +126,9 @@ bool AbstractCommand::prepareForRetry(int wait) {
return true;
}
-void AbstractCommand::onAbort(Exception* e) {
+void AbstractCommand::onAbort(Exception* ex) {
+ e->logger->debug(MSG_UNREGISTER_CUID, cuid);
+ e->segmentMan->unregisterId(cuid);
}
void AbstractCommand::setReadCheckSocket(Socket* socket) {