# HG changeset patch # User Sebastien Jodogne # Date 1466003950 -7200 # Node ID a0bd8cd55da7dc841cacae8e6898f6d54833c97f # Parent 9c9332e486ca4dac57ce673994b309fd09679e97 reorganization diff -r 9c9332e486ca -r a0bd8cd55da7 CMakeLists.txt --- a/CMakeLists.txt Tue Jun 14 17:53:23 2016 +0200 +++ b/CMakeLists.txt Wed Jun 15 17:19:10 2016 +0200 @@ -144,6 +144,7 @@ Core/SQLite/Transaction.cpp Core/Toolbox.cpp Core/Uuid.cpp + Core/WebServiceParameters.cpp Core/Lua/LuaContext.cpp Core/Lua/LuaFunctionCall.cpp ) @@ -172,7 +173,6 @@ OrthancServer/OrthancHttpHandler.cpp OrthancServer/OrthancInitialization.cpp OrthancServer/OrthancMoveRequestHandler.cpp - OrthancServer/OrthancPeerParameters.cpp OrthancServer/OrthancRestApi/OrthancRestAnonymizeModify.cpp OrthancServer/OrthancRestApi/OrthancRestApi.cpp OrthancServer/OrthancRestApi/OrthancRestArchive.cpp diff -r 9c9332e486ca -r a0bd8cd55da7 Core/HttpClient.cpp --- a/Core/HttpClient.cpp Tue Jun 14 17:53:23 2016 +0200 +++ b/Core/HttpClient.cpp Wed Jun 15 17:19:10 2016 +0200 @@ -240,9 +240,36 @@ } - HttpClient::HttpClient() : pimpl_(new PImpl), verifyPeers_(true) + HttpClient::HttpClient() : + pimpl_(new PImpl), + verifyPeers_(true) + { + Setup(); + } + + + HttpClient::HttpClient(const WebServiceParameters& service, + const std::string& uri) : + pimpl_(new PImpl), + verifyPeers_(true) { Setup(); + + if (service.GetUsername().size() != 0 && + service.GetPassword().size() != 0) + { + SetCredentials(service.GetUsername().c_str(), + service.GetPassword().c_str()); + } + + if (!service.GetCertificateFile().empty()) + { + SetClientCertificate(service.GetCertificateFile(), + service.GetCertificateKeyFile(), + service.GetCertificateKeyPassword()); + } + + SetUrl(service.GetUrl() + uri); } diff -r 9c9332e486ca -r a0bd8cd55da7 Core/HttpClient.h --- a/Core/HttpClient.h Tue Jun 14 17:53:23 2016 +0200 +++ b/Core/HttpClient.h Wed Jun 15 17:19:10 2016 +0200 @@ -33,6 +33,7 @@ #pragma once #include "Enumerations.h" +#include "WebServiceParameters.h" #include #include @@ -70,6 +71,9 @@ public: HttpClient(); + HttpClient(const WebServiceParameters& service, + const std::string& uri); + ~HttpClient(); void SetUrl(const char* url) diff -r 9c9332e486ca -r a0bd8cd55da7 Core/WebServiceParameters.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Core/WebServiceParameters.cpp Wed Jun 15 17:19:10 2016 +0200 @@ -0,0 +1,237 @@ +/** + * Orthanc - A Lightweight, RESTful DICOM Store + * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics + * Department, University Hospital of Liege, Belgium + * + * This program is free software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * In addition, as a special exception, the copyright holders of this + * program give permission to link the code of its release with the + * OpenSSL project's "OpenSSL" library (or with modified versions of it + * that use the same license as the "OpenSSL" library), and distribute + * the linked executables. You must obey the GNU General Public License + * in all respects for all of the code used other than "OpenSSL". If you + * modify file(s) with this exception, you may extend this exception to + * your version of the file(s), but you are not obligated to do so. If + * you do not wish to do so, delete this exception statement from your + * version. If you delete this exception statement from all source files + * in the program, then also delete it here. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + **/ + + +#include "PrecompiledHeaders.h" +#include "WebServiceParameters.h" + +#include "../Core/Logging.h" +#include "../Core/Toolbox.h" +#include "../Core/OrthancException.h" + +namespace Orthanc +{ + WebServiceParameters::WebServiceParameters() : + advancedFormat_(false), + url_("http://localhost:8042/") + { + } + + + void WebServiceParameters::SetClientCertificate(const std::string& certificateFile, + const std::string& certificateKeyFile, + const std::string& certificateKeyPassword) + { + if (certificateFile.empty()) + { + throw OrthancException(ErrorCode_ParameterOutOfRange); + } + + if (!Toolbox::IsRegularFile(certificateFile)) + { + LOG(ERROR) << "Cannot open certificate file: " << certificateFile; + throw OrthancException(ErrorCode_InexistentFile); + } + + if (!certificateKeyFile.empty() && + !Toolbox::IsRegularFile(certificateKeyFile)) + { + LOG(ERROR) << "Cannot open key file: " << certificateKeyFile; + throw OrthancException(ErrorCode_InexistentFile); + } + + advancedFormat_ = true; + certificateFile_ = certificateFile; + certificateKeyFile_ = certificateKeyFile; + certificateKeyPassword_ = certificateKeyPassword; + } + + + static void AddTrailingSlash(std::string& url) + { + if (url.size() != 0 && + url[url.size() - 1] != '/') + { + url += '/'; + } + } + + + void WebServiceParameters::FromJsonArray(const Json::Value& peer) + { + assert(peer.isArray()); + + advancedFormat_ = false; + + if (peer.size() != 1 && + peer.size() != 3) + { + throw OrthancException(ErrorCode_BadFileFormat); + } + + std::string url = peer.get(0u, "").asString(); + if (url.empty()) + { + throw OrthancException(ErrorCode_BadFileFormat); + } + + AddTrailingSlash(url); + SetUrl(url); + + if (peer.size() == 1) + { + SetUsername(""); + SetPassword(""); + } + else if (peer.size() == 3) + { + SetUsername(peer.get(1u, "").asString()); + SetPassword(peer.get(2u, "").asString()); + } + else + { + throw OrthancException(ErrorCode_BadFileFormat); + } + } + + + static std::string GetStringMember(const Json::Value& peer, + const std::string& key, + const std::string& defaultValue) + { + if (!peer.isMember(key)) + { + return defaultValue; + } + else if (peer[key].type() != Json::stringValue) + { + throw OrthancException(ErrorCode_BadFileFormat); + } + else + { + return peer[key].asString(); + } + } + + + void WebServiceParameters::FromJsonObject(const Json::Value& peer) + { + assert(peer.isObject()); + advancedFormat_ = true; + + std::string url = GetStringMember(peer, "Url", ""); + if (url.empty()) + { + throw OrthancException(ErrorCode_BadFileFormat); + } + + AddTrailingSlash(url); + SetUrl(url); + + SetUsername(GetStringMember(peer, "Username", "")); + SetPassword(GetStringMember(peer, "Password", "")); + + if (peer.isMember("CertificateFile")) + { + SetClientCertificate(GetStringMember(peer, "CertificateFile", ""), + GetStringMember(peer, "CertificateKeyFile", ""), + GetStringMember(peer, "CertificateKeyPassword", "")); + } + } + + + void WebServiceParameters::FromJson(const Json::Value& peer) + { + try + { + if (peer.isArray()) + { + FromJsonArray(peer); + } + else if (peer.isObject()) + { + FromJsonObject(peer); + } + else + { + throw OrthancException(ErrorCode_BadFileFormat); + } + } + catch (...) + { + throw OrthancException(ErrorCode_BadFileFormat); + } + } + + + void WebServiceParameters::ToJson(Json::Value& value) const + { + if (advancedFormat_) + { + value = Json::objectValue; + value["Url"] = url_; + + if (!username_.empty() || + !password_.empty()) + { + value["Username"] = username_; + value["Password"] = password_; + } + + if (!certificateFile_.empty()) + { + value["CertificateFile"] = certificateFile_; + } + + if (!certificateKeyFile_.empty()) + { + value["CertificateKeyFile"] = certificateKeyFile_; + } + + if (!certificateKeyPassword_.empty()) + { + value["CertificateKeyPassword"] = certificateKeyPassword_; + } + } + else + { + value = Json::arrayValue; + value.append(url_); + + if (!username_.empty() || + !password_.empty()) + { + value.append(username_); + value.append(password_); + } + } + } +} diff -r 9c9332e486ca -r a0bd8cd55da7 Core/WebServiceParameters.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Core/WebServiceParameters.h Wed Jun 15 17:19:10 2016 +0200 @@ -0,0 +1,111 @@ +/** + * Orthanc - A Lightweight, RESTful DICOM Store + * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics + * Department, University Hospital of Liege, Belgium + * + * This program is free software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * In addition, as a special exception, the copyright holders of this + * program give permission to link the code of its release with the + * OpenSSL project's "OpenSSL" library (or with modified versions of it + * that use the same license as the "OpenSSL" library), and distribute + * the linked executables. You must obey the GNU General Public License + * in all respects for all of the code used other than "OpenSSL". If you + * modify file(s) with this exception, you may extend this exception to + * your version of the file(s), but you are not obligated to do so. If + * you do not wish to do so, delete this exception statement from your + * version. If you delete this exception statement from all source files + * in the program, then also delete it here. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + **/ + + +#pragma once + +#include +#include + +namespace Orthanc +{ + class WebServiceParameters + { + private: + bool advancedFormat_; + std::string url_; + std::string username_; + std::string password_; + std::string certificateFile_; + std::string certificateKeyFile_; + std::string certificateKeyPassword_; + + void FromJsonArray(const Json::Value& peer); + + void FromJsonObject(const Json::Value& peer); + + public: + WebServiceParameters(); + + const std::string& GetUrl() const + { + return url_; + } + + void SetUrl(const std::string& url) + { + url_ = url; + } + + const std::string& GetUsername() const + { + return username_; + } + + void SetUsername(const std::string& username) + { + username_ = username; + } + + const std::string& GetPassword() const + { + return password_; + } + + void SetPassword(const std::string& password) + { + password_ = password; + } + + void SetClientCertificate(const std::string& certificateFile, + const std::string& certificateKeyFile, + const std::string& certificateKeyPassword); + + const std::string& GetCertificateFile() const + { + return certificateFile_; + } + + const std::string& GetCertificateKeyFile() const + { + return certificateKeyFile_; + } + + const std::string& GetCertificateKeyPassword() const + { + return certificateKeyPassword_; + } + + void FromJson(const Json::Value& peer); + + void ToJson(Json::Value& value) const; + }; +} diff -r 9c9332e486ca -r a0bd8cd55da7 OrthancServer/LuaScripting.cpp --- a/OrthancServer/LuaScripting.cpp Tue Jun 14 17:53:23 2016 +0200 +++ b/OrthancServer/LuaScripting.cpp Wed Jun 15 17:19:10 2016 +0200 @@ -263,7 +263,7 @@ LOG(INFO) << "Lua script to send resource " << parameters["Resource"].asString() << " to peer " << peer << " using HTTP"; - OrthancPeerParameters parameters; + WebServiceParameters parameters; Configuration::GetOrthancPeer(parameters, peer); return new StorePeerCommand(context_, parameters, true); } diff -r 9c9332e486ca -r a0bd8cd55da7 OrthancServer/OrthancInitialization.cpp --- a/OrthancServer/OrthancInitialization.cpp Tue Jun 14 17:53:23 2016 +0200 +++ b/OrthancServer/OrthancInitialization.cpp Wed Jun 15 17:19:10 2016 +0200 @@ -290,7 +290,7 @@ Configuration::GetListOfOrthancPeers(ids); for (std::set::const_iterator it = ids.begin(); it != ids.end(); ++it) { - OrthancPeerParameters peer; + WebServiceParameters peer; Configuration::GetOrthancPeer(peer, *it); } @@ -577,7 +577,7 @@ - void Configuration::GetOrthancPeer(OrthancPeerParameters& peer, + void Configuration::GetOrthancPeer(WebServiceParameters& peer, const std::string& name) { boost::recursive_mutex::scoped_lock lock(globalMutex_); @@ -888,7 +888,7 @@ void Configuration::UpdatePeer(const std::string& symbolicName, - const OrthancPeerParameters& peer) + const WebServiceParameters& peer) { boost::recursive_mutex::scoped_lock lock(globalMutex_); diff -r 9c9332e486ca -r a0bd8cd55da7 OrthancServer/OrthancInitialization.h --- a/OrthancServer/OrthancInitialization.h Tue Jun 14 17:53:23 2016 +0200 +++ b/OrthancServer/OrthancInitialization.h Wed Jun 15 17:19:10 2016 +0200 @@ -36,13 +36,15 @@ #include #include #include + +#include "../Core/FileStorage/IStorageArea.h" #include "../Core/HttpServer/MongooseServer.h" +#include "../Core/Images/FontRegistry.h" +#include "../Core/WebServiceParameters.h" + #include "DicomProtocol/RemoteModalityParameters.h" +#include "IDatabaseWrapper.h" #include "ServerEnumerations.h" -#include "OrthancPeerParameters.h" -#include "IDatabaseWrapper.h" -#include "../Core/FileStorage/IStorageArea.h" -#include "../Core/Images/FontRegistry.h" namespace Orthanc { @@ -71,7 +73,7 @@ static bool LookupDicomModalityUsingAETitle(RemoteModalityParameters& modality, const std::string& aet); - static void GetOrthancPeer(OrthancPeerParameters& peer, + static void GetOrthancPeer(WebServiceParameters& peer, const std::string& name); static void GetListOfDicomModalities(std::set& target); @@ -103,7 +105,7 @@ static void RemoveModality(const std::string& symbolicName); static void UpdatePeer(const std::string& symbolicName, - const OrthancPeerParameters& peer); + const WebServiceParameters& peer); static void RemovePeer(const std::string& symbolicName); diff -r 9c9332e486ca -r a0bd8cd55da7 OrthancServer/OrthancPeerParameters.cpp --- a/OrthancServer/OrthancPeerParameters.cpp Tue Jun 14 17:53:23 2016 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,253 +0,0 @@ -/** - * Orthanc - A Lightweight, RESTful DICOM Store - * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics - * Department, University Hospital of Liege, Belgium - * - * This program is free software: you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * In addition, as a special exception, the copyright holders of this - * program give permission to link the code of its release with the - * OpenSSL project's "OpenSSL" library (or with modified versions of it - * that use the same license as the "OpenSSL" library), and distribute - * the linked executables. You must obey the GNU General Public License - * in all respects for all of the code used other than "OpenSSL". If you - * modify file(s) with this exception, you may extend this exception to - * your version of the file(s), but you are not obligated to do so. If - * you do not wish to do so, delete this exception statement from your - * version. If you delete this exception statement from all source files - * in the program, then also delete it here. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - **/ - - -#include "PrecompiledHeadersServer.h" -#include "OrthancPeerParameters.h" - -#include "../Core/Logging.h" -#include "../Core/Toolbox.h" -#include "../Core/OrthancException.h" - -namespace Orthanc -{ - OrthancPeerParameters::OrthancPeerParameters() : - advancedFormat_(false), - url_("http://localhost:8042/") - { - } - - - void OrthancPeerParameters::SetClientCertificate(const std::string& certificateFile, - const std::string& certificateKeyFile, - const std::string& certificateKeyPassword) - { - if (certificateFile.empty()) - { - throw OrthancException(ErrorCode_ParameterOutOfRange); - } - - if (!Toolbox::IsRegularFile(certificateFile)) - { - LOG(ERROR) << "Cannot open certificate file: " << certificateFile; - throw OrthancException(ErrorCode_InexistentFile); - } - - if (!certificateKeyFile.empty() && - !Toolbox::IsRegularFile(certificateKeyFile)) - { - LOG(ERROR) << "Cannot open key file: " << certificateKeyFile; - throw OrthancException(ErrorCode_InexistentFile); - } - - advancedFormat_ = true; - certificateFile_ = certificateFile; - certificateKeyFile_ = certificateKeyFile; - certificateKeyPassword_ = certificateKeyPassword; - } - - - static void AddTrailingSlash(std::string& url) - { - if (url.size() != 0 && - url[url.size() - 1] != '/') - { - url += '/'; - } - } - - - void OrthancPeerParameters::FromJsonArray(const Json::Value& peer) - { - assert(peer.isArray()); - - advancedFormat_ = false; - - if (peer.size() != 1 && - peer.size() != 3) - { - throw OrthancException(ErrorCode_BadFileFormat); - } - - std::string url = peer.get(0u, "").asString(); - if (url.empty()) - { - throw OrthancException(ErrorCode_BadFileFormat); - } - - AddTrailingSlash(url); - SetUrl(url); - - if (peer.size() == 1) - { - SetUsername(""); - SetPassword(""); - } - else if (peer.size() == 3) - { - SetUsername(peer.get(1u, "").asString()); - SetPassword(peer.get(2u, "").asString()); - } - else - { - throw OrthancException(ErrorCode_BadFileFormat); - } - } - - - static std::string GetStringMember(const Json::Value& peer, - const std::string& key, - const std::string& defaultValue) - { - if (!peer.isMember(key)) - { - return defaultValue; - } - else if (peer[key].type() != Json::stringValue) - { - throw OrthancException(ErrorCode_BadFileFormat); - } - else - { - return peer[key].asString(); - } - } - - - void OrthancPeerParameters::FromJsonObject(const Json::Value& peer) - { - assert(peer.isObject()); - advancedFormat_ = true; - - std::string url = GetStringMember(peer, "Url", ""); - if (url.empty()) - { - throw OrthancException(ErrorCode_BadFileFormat); - } - - AddTrailingSlash(url); - SetUrl(url); - - SetUsername(GetStringMember(peer, "Username", "")); - SetPassword(GetStringMember(peer, "Password", "")); - - if (peer.isMember("CertificateFile")) - { - SetClientCertificate(GetStringMember(peer, "CertificateFile", ""), - GetStringMember(peer, "CertificateKeyFile", ""), - GetStringMember(peer, "CertificateKeyPassword", "")); - } - } - - - void OrthancPeerParameters::FromJson(const Json::Value& peer) - { - try - { - if (peer.isArray()) - { - FromJsonArray(peer); - } - else if (peer.isObject()) - { - FromJsonObject(peer); - } - else - { - throw OrthancException(ErrorCode_BadFileFormat); - } - } - catch (...) - { - throw OrthancException(ErrorCode_BadFileFormat); - } - } - - - void OrthancPeerParameters::ToJson(Json::Value& value) const - { - if (advancedFormat_) - { - value = Json::objectValue; - value["Url"] = url_; - - if (!username_.empty() || - !password_.empty()) - { - value["Username"] = username_; - value["Password"] = password_; - } - - if (!certificateFile_.empty()) - { - value["CertificateFile"] = certificateFile_; - } - - if (!certificateKeyFile_.empty()) - { - value["CertificateKeyFile"] = certificateKeyFile_; - } - - if (!certificateKeyPassword_.empty()) - { - value["CertificateKeyPassword"] = certificateKeyPassword_; - } - } - else - { - value = Json::arrayValue; - value.append(url_); - - if (!username_.empty() || - !password_.empty()) - { - value.append(username_); - value.append(password_); - } - } - } - - - void OrthancPeerParameters::ConfigureClient(HttpClient& client) const - { - if (username_.size() != 0 && - password_.size() != 0) - { - client.SetCredentials(username_.c_str(), - password_.c_str()); - } - - if (!GetCertificateFile().empty()) - { - client.SetClientCertificate(certificateFile_, certificateKeyFile_, certificateKeyPassword_); - } - } -} diff -r 9c9332e486ca -r a0bd8cd55da7 OrthancServer/OrthancPeerParameters.h --- a/OrthancServer/OrthancPeerParameters.h Tue Jun 14 17:53:23 2016 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,115 +0,0 @@ -/** - * Orthanc - A Lightweight, RESTful DICOM Store - * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics - * Department, University Hospital of Liege, Belgium - * - * This program is free software: you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * In addition, as a special exception, the copyright holders of this - * program give permission to link the code of its release with the - * OpenSSL project's "OpenSSL" library (or with modified versions of it - * that use the same license as the "OpenSSL" library), and distribute - * the linked executables. You must obey the GNU General Public License - * in all respects for all of the code used other than "OpenSSL". If you - * modify file(s) with this exception, you may extend this exception to - * your version of the file(s), but you are not obligated to do so. If - * you do not wish to do so, delete this exception statement from your - * version. If you delete this exception statement from all source files - * in the program, then also delete it here. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - **/ - - -#pragma once - -#include "../Core/HttpClient.h" - -#include -#include - -namespace Orthanc -{ - class OrthancPeerParameters - { - private: - bool advancedFormat_; - std::string url_; - std::string username_; - std::string password_; - std::string certificateFile_; - std::string certificateKeyFile_; - std::string certificateKeyPassword_; - - void FromJsonArray(const Json::Value& peer); - - void FromJsonObject(const Json::Value& peer); - - public: - OrthancPeerParameters(); - - const std::string& GetUrl() const - { - return url_; - } - - void SetUrl(const std::string& url) - { - url_ = url; - } - - const std::string& GetUsername() const - { - return username_; - } - - void SetUsername(const std::string& username) - { - username_ = username; - } - - const std::string& GetPassword() const - { - return password_; - } - - void SetPassword(const std::string& password) - { - password_ = password; - } - - void SetClientCertificate(const std::string& certificateFile, - const std::string& certificateKeyFile, - const std::string& certificateKeyPassword); - - const std::string& GetCertificateFile() const - { - return certificateFile_; - } - - const std::string& GetCertificateKeyFile() const - { - return certificateKeyFile_; - } - - const std::string& GetCertificateKeyPassword() const - { - return certificateKeyPassword_; - } - - void FromJson(const Json::Value& peer); - - void ToJson(Json::Value& value) const; - - void ConfigureClient(HttpClient& client) const; - }; -} diff -r 9c9332e486ca -r a0bd8cd55da7 OrthancServer/OrthancRestApi/OrthancRestModalities.cpp --- a/OrthancServer/OrthancRestApi/OrthancRestModalities.cpp Tue Jun 14 17:53:23 2016 +0200 +++ b/OrthancServer/OrthancRestApi/OrthancRestModalities.cpp Wed Jun 15 17:19:10 2016 +0200 @@ -864,7 +864,7 @@ return; } - OrthancPeerParameters peer; + WebServiceParameters peer; Configuration::GetOrthancPeer(peer, remote); ServerJob job; @@ -952,7 +952,7 @@ Json::Reader reader; if (reader.parse(call.GetBodyData(), call.GetBodyData() + call.GetBodySize(), json)) { - OrthancPeerParameters peer; + WebServiceParameters peer; peer.FromJson(json); Configuration::UpdatePeer(call.GetUriComponent("id", ""), peer); call.GetOutput().AnswerBuffer("", "text/plain"); diff -r 9c9332e486ca -r a0bd8cd55da7 OrthancServer/Scheduler/StorePeerCommand.cpp --- a/OrthancServer/Scheduler/StorePeerCommand.cpp Tue Jun 14 17:53:23 2016 +0200 +++ b/OrthancServer/Scheduler/StorePeerCommand.cpp Wed Jun 15 17:19:10 2016 +0200 @@ -39,7 +39,7 @@ namespace Orthanc { StorePeerCommand::StorePeerCommand(ServerContext& context, - const OrthancPeerParameters& peer, + const WebServiceParameters& peer, bool ignoreExceptions) : context_(context), peer_(peer), @@ -51,10 +51,7 @@ const ListOfStrings& inputs) { // Configure the HTTP client - HttpClient client; - peer_.ConfigureClient(client); - - client.SetUrl(peer_.GetUrl() + "instances"); + HttpClient client(peer_, "instances"); client.SetMethod(HttpMethod_Post); for (ListOfStrings::const_iterator diff -r 9c9332e486ca -r a0bd8cd55da7 OrthancServer/Scheduler/StorePeerCommand.h --- a/OrthancServer/Scheduler/StorePeerCommand.h Tue Jun 14 17:53:23 2016 +0200 +++ b/OrthancServer/Scheduler/StorePeerCommand.h Wed Jun 15 17:19:10 2016 +0200 @@ -42,12 +42,12 @@ { private: ServerContext& context_; - OrthancPeerParameters peer_; + WebServiceParameters peer_; bool ignoreExceptions_; public: StorePeerCommand(ServerContext& context, - const OrthancPeerParameters& peer, + const WebServiceParameters& peer, bool ignoreExceptions); virtual bool Apply(ListOfStrings& outputs,