diff --git a/src/aria2.cpp b/src/aria2.cpp index 0b403e091..97243ea7e 100644 --- a/src/aria2.cpp +++ b/src/aria2.cpp @@ -34,6 +34,7 @@ Aria2::Aria2(): callCmd.push_back("aria2c"); callCmd.push_back("--enable-rpc"); + callCmd.push_back(rpc_secret.c_str()); callCmd.push_back(rpc_port.c_str()); callCmd.push_back(download_dir.c_str()); // callCmd.push_back(log_dir.c_str()); @@ -99,8 +100,7 @@ std::string Aria2::doRequest(const MethodCall& methodCall) std::string Aria2::addUri(const std::vector& uris) { - MethodCall methodCall("aria2.addUri"); - methodCall.getParams().addParam().getValue().set(m_secret); + MethodCall methodCall("aria2.addUri", m_secret); auto uriParams = methodCall.getParams().addParam().getValue().getArray(); for (auto& uri : uris) { uriParams.addValue().set(uri); @@ -117,8 +117,7 @@ std::string Aria2::addUri(const std::vector& uris) std::string Aria2::tellStatus(const std::string& gid, const std::vector& statusKey) { - MethodCall methodCall("aria2.tellStatus"); - methodCall.getParams().addParam().getValue().set(m_secret); + MethodCall methodCall("aria2.tellStatus", m_secret); methodCall.getParams().addParam().getValue().set(gid); if (!statusKey.empty()) { auto statusArray = methodCall.getParams().addParam().getValue().getArray(); diff --git a/src/xmlrpc.h b/src/xmlrpc.h index a7ea2f34b..65659ddf7 100644 --- a/src/xmlrpc.h +++ b/src/xmlrpc.h @@ -202,10 +202,13 @@ class MethodCall { pugi::xml_document m_doc; public: - MethodCall(const std::string& methodName) { + MethodCall(const std::string& methodName, const std::string& secret) { auto mCall = m_doc.append_child("methodCall"); mCall.append_child("methodName").text().set(methodName.c_str()); mCall.append_child("params"); + if (!secret.empty()) { + getParams().addParam().getValue().set(secret); + } } Params getParams() const {