diff --git a/include/downloader.h b/include/downloader.h index d0b42cf57..9432a71e3 100644 --- a/include/downloader.h +++ b/include/downloader.h @@ -88,7 +88,7 @@ class Download { class Downloader { public: - Downloader(); + Downloader(std::string sessionFileDir = ""); virtual ~Downloader(); void close(); diff --git a/include/kiwixserve.h b/include/kiwixserve.h index 225062b48..a222ad60e 100644 --- a/include/kiwixserve.h +++ b/include/kiwixserve.h @@ -18,6 +18,7 @@ class KiwixServe bool isRunning(); int getPort() { return m_port; } int setPort(int port); + void setLibraryPath(std::string path) { m_libraryPath = path; } private: std::unique_ptr mp_kiwixServe; diff --git a/src/aria2.cpp b/src/aria2.cpp index efa9e3f3b..67ae19b4c 100644 --- a/src/aria2.cpp +++ b/src/aria2.cpp @@ -22,7 +22,7 @@ namespace kiwix { -Aria2::Aria2(): +Aria2::Aria2(std::string sessionFileDir): mp_aria(nullptr), m_port(42042), m_secret("kiwixariarpc"), @@ -35,7 +35,12 @@ Aria2::Aria2(): std::string rpc_port = "--rpc-listen-port=" + to_string(m_port); std::string download_dir = "--dir=" + getDataDirectory(); - std::string session_file = appendToDirectory(getDataDirectory(), "kiwix.session"); + std::string session_file; + if (sessionFileDir.empty()) { + session_file = appendToDirectory(getDataDirectory(), "kiwix.session"); + } else { + session_file = appendToDirectory(sessionFileDir, "kiwix.session"); + } std::string session = "--save-session=" + session_file; std::string inputFile = "--input-file=" + session_file; // std::string log_dir = "--log=\"" + logDir + "\""; diff --git a/src/aria2.h b/src/aria2.h index 9108d221e..3170deacf 100644 --- a/src/aria2.h +++ b/src/aria2.h @@ -30,7 +30,7 @@ class Aria2 std::string doRequest(const MethodCall& methodCall); public: - Aria2(); + Aria2(std::string sessionFileDir = ""); virtual ~Aria2(); void close(); diff --git a/src/downloader.cpp b/src/downloader.cpp index 8f103df5b..81164defb 100644 --- a/src/downloader.cpp +++ b/src/downloader.cpp @@ -124,8 +124,8 @@ void Download::cancelDownload() } /* Constructor */ -Downloader::Downloader() : - mp_aria(new Aria2()) +Downloader::Downloader(std::string sessionFileDir) : + mp_aria(new Aria2(sessionFileDir)) { try { for (auto gid : mp_aria->tellActive()) {