diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2015-06-26 21:35:55 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2015-06-26 21:38:03 +0900 |
| commit | 7e3d82cb2250c679a5d7dcc7e0e4f25cdd283c36 (patch) | |
| tree | 1018ed52b099f5d7833b3d7c5d0060b364448d22 /src/CreateRequestCommand.cc | |
| parent | 8fddf1bb7e72e0fe67311ed5365621fbcedd53f9 (diff) | |
Fix busy loop with --dry-run and 4xx response for URI listed in metalink
See GH-430
Diffstat (limited to 'src/CreateRequestCommand.cc')
| -rw-r--r-- | src/CreateRequestCommand.cc | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/CreateRequestCommand.cc b/src/CreateRequestCommand.cc index 8db0cf56..b7b178a7 100644 --- a/src/CreateRequestCommand.cc +++ b/src/CreateRequestCommand.cc @@ -48,6 +48,7 @@ #include "SocketRecvBuffer.h" #include "LogFactory.h" #include "wallclock.h" +#include "DownloadFailureException.h" namespace aria2 { @@ -94,6 +95,13 @@ bool CreateRequestCommand::executeInternal() if(getSegmentMan()) { getSegmentMan()->ignoreSegmentFor(getFileEntry()); } + if(getOption()->getAsBool(PREF_DRY_RUN)) { + // For dry run mode, just throwing DlAbortEx makes infinite + // loop, since we don't have SegmentMan, and we cannot tell all + // hopes were abandoned. + throw DOWNLOAD_FAILURE_EXCEPTION2("No URI available.", + getRequestGroup()->getLastErrorCode()); + } // In this case, the error might be already set in RequestGroup, // so use it here. throw DL_ABORT_EX2("No URI available.", |
