From bc1cf6ed2d4c7ef52263a781359a73edb546970d Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Wed, 1 Mar 2006 02:26:29 +0000 Subject: * 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. --- src/AbstractCommand.cc | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'src/AbstractCommand.cc') 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) { -- cgit