diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2009-01-12 12:27:34 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2009-01-12 12:27:34 +0000 |
| commit | 8a9d921465f80e231f9e1a99a0d93beafb474402 (patch) | |
| tree | 85963269afe6e95da564e23f4c2da61c023c9a97 /src/AbstractCommand.cc | |
| parent | 0a4f43d0edeefb5bc49329b791984c7b2072d1df (diff) | |
2009-01-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Applied exit-status patch from Pascal Rigaux at Mandriva. aria2
now returns last error encountered in the HTTP/FTP downloads as
a exit status value. If all downloads finished successfully,
aria2 returns 0. The error code is defined in
src/DownloadResult.h.
The error occurred in the download currently in progress is not
reported as a last error. If no error has encountered but there
are in progress or waiting downloads, aria2 returns 7.
* src/AbstractCommand.cc
* src/DlAbortEx.h
* src/DlRetryEx.h
* src/DownloadCommand.cc
* src/DownloadFailureException.h
* src/DownloadResult.h
* src/FtpNegotiationCommand.cc
* src/HttpSkipResponseCommand.cc
* src/Makefile.am
* src/MultiUrlRequestInfo.cc
* src/MultiUrlRequestInfo.h
* src/RecoverableException.h
* src/RequestGroup.cc
* src/RequestGroup.h
* src/RequestGroupMan.cc
* src/RequestGroupMan.h
* src/URIResult.cc
* src/URIResult.h
* src/main.cc
* src/option_processing.cc
* test/RequestGroupTest.cc
Diffstat (limited to 'src/AbstractCommand.cc')
| -rw-r--r-- | src/AbstractCommand.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/AbstractCommand.cc b/src/AbstractCommand.cc index 5c2f3491..9ec238e0 100644 --- a/src/AbstractCommand.cc +++ b/src/AbstractCommand.cc @@ -149,13 +149,14 @@ bool AbstractCommand::execute() { req->getProtocol()); ss->setError(); - throw DlRetryEx(EX_TIME_OUT); + throw DlRetryEx(EX_TIME_OUT, DownloadResult::TIME_OUT); } e->commands.push_back(this); return false; } } catch(DlAbortEx& err) { logger->error(MSG_DOWNLOAD_ABORTED, err, cuid, req->getUrl().c_str()); + _requestGroup->addURIResult(req->getUrl(), err.getCode()); onAbort(); req->resetUrl(); tryReserved(); @@ -174,6 +175,7 @@ bool AbstractCommand::execute() { if(isAbort) { logger->info(MSG_MAX_TRY, cuid, req->getTryCount()); logger->error(MSG_DOWNLOAD_ABORTED, err, cuid, req->getUrl().c_str()); + _requestGroup->addURIResult(req->getUrl(), err.getCode()); tryReserved(); return true; } else { @@ -181,6 +183,7 @@ bool AbstractCommand::execute() { } } catch(DownloadFailureException& err) { logger->error(EX_EXCEPTION_CAUGHT, err); + _requestGroup->addURIResult(req->getUrl(), err.getCode()); _requestGroup->setHaltRequested(true); return true; } |
