diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2010-04-08 12:54:14 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2010-04-08 12:54:14 +0000 |
| commit | 5cd0108f93d9b91e30b74ec92e66571493a2b997 (patch) | |
| tree | b95334e12a5b1c09fc5fe3731c26beb7031cc84c /src/MultiUrlRequestInfo.cc | |
| parent | dd7590f927f73a887f579aba6f309e1539943e6d (diff) | |
2010-04-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Added --save-session=FILE option. This option saves
error/unfinished downloads to FILE on exit. You can pass this
output file to aria2c with -i option on restart. Please note that
downloads added by aria2.addTorrent and aria2.addMetalink XML-RPC
method are not saved.
* src/BtPostDownloadHandler.cc
* src/DownloadResult.h
* src/Makefile.am
* src/MetadataInfo.cc
* src/MetadataInfo.h
* src/Metalink2RequestGroup.cc
* src/MetalinkPostDownloadHandler.cc
* src/MultiUrlRequestInfo.cc
* src/OptionHandlerFactory.cc
* src/RequestGroup.cc
* src/RequestGroup.h
* src/SessionSerializer.cc
* src/SessionSerializer.h
* src/UTMetadataPostDownloadHandler.cc
* src/download_helper.cc
* src/download_helper.h
* src/prefs.cc
* src/prefs.h
* src/usage_text.h
* test/Makefile.am
* test/SessionSerializerTest.cc
* test/XmlRpcMethodTest.cc
* test/serialize_session.meta4
Diffstat (limited to 'src/MultiUrlRequestInfo.cc')
| -rw-r--r-- | src/MultiUrlRequestInfo.cc | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/MultiUrlRequestInfo.cc b/src/MultiUrlRequestInfo.cc index b70ebfb1..35e1be22 100644 --- a/src/MultiUrlRequestInfo.cc +++ b/src/MultiUrlRequestInfo.cc @@ -55,6 +55,8 @@ #include "Netrc.h" #include "AuthConfigFactory.h" #include "DownloadContext.h" +#include "SessionSerializer.h" +#include "ServerStatMan.h" #ifdef ENABLE_SSL # include "SocketCore.h" # include "TLSContext.h" @@ -193,6 +195,15 @@ downloadresultcode::RESULT MultiUrlRequestInfo::execute() returnValue = s.getLastErrorResult(); } } + SessionSerializer sessionSerializer(e->_requestGroupMan); + // TODO Add option: --save-session-status=error,inprogress,waiting + if(!_option->blank(PREF_SAVE_SESSION)) { + if(sessionSerializer.save(_option->get(PREF_SAVE_SESSION))) { + _logger->notice("Serialized session successfully."); + } else { + _logger->notice("Failed to serialize session."); + } + } } catch(RecoverableException& e) { if(returnValue == downloadresultcode::FINISHED) { returnValue = downloadresultcode::UNKNOWN_ERROR; |
