summaryrefslogtreecommitdiff
path: root/src/AbstractCommand.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2009-01-12 12:27:34 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2009-01-12 12:27:34 +0000
commit8a9d921465f80e231f9e1a99a0d93beafb474402 (patch)
tree85963269afe6e95da564e23f4c2da61c023c9a97 /src/AbstractCommand.cc
parent0a4f43d0edeefb5bc49329b791984c7b2072d1df (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.cc5
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;
}