aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorwoodser <woodser@protonmail.com>2022-01-17 17:03:56 -0500
committerwoodser <woodser@protonmail.com>2022-01-17 17:03:56 -0500
commitfb5b2b352a97fbc3d784312b6e42da791cfe4b28 (patch)
tree67865b2b344dbe938f7b8aa4c3ad8af898823a7b /src
parentMerge pull request #8103 (diff)
downloadmonero-fb5b2b352a97fbc3d784312b6e42da791cfe4b28.tar.xz
support authentication in monero-wallet-rpc set_daemon
Diffstat (limited to 'src')
-rw-r--r--src/wallet/wallet_rpc_server.cpp6
-rw-r--r--src/wallet/wallet_rpc_server_commands_defs.h6
2 files changed, 10 insertions, 2 deletions
diff --git a/src/wallet/wallet_rpc_server.cpp b/src/wallet/wallet_rpc_server.cpp
index 4655e24cd..76b02b244 100644
--- a/src/wallet/wallet_rpc_server.cpp
+++ b/src/wallet/wallet_rpc_server.cpp
@@ -4426,7 +4426,11 @@ namespace tools
return false;
}
- if (!m_wallet->set_daemon(req.address, boost::none, req.trusted, std::move(ssl_options)))
+ boost::optional<epee::net_utils::http::login> daemon_login{};
+ if (!req.username.empty() || !req.password.empty())
+ daemon_login.emplace(req.username, req.password);
+
+ if (!m_wallet->set_daemon(req.address, daemon_login, req.trusted, std::move(ssl_options)))
{
er.code = WALLET_RPC_ERROR_CODE_NO_DAEMON_CONNECTION;
er.message = std::string("Unable to set daemon");
diff --git a/src/wallet/wallet_rpc_server_commands_defs.h b/src/wallet/wallet_rpc_server_commands_defs.h
index 248d31aa4..e01d17748 100644
--- a/src/wallet/wallet_rpc_server_commands_defs.h
+++ b/src/wallet/wallet_rpc_server_commands_defs.h
@@ -47,7 +47,7 @@
// advance which version they will stop working with
// Don't go over 32767 for any of these
#define WALLET_RPC_VERSION_MAJOR 1
-#define WALLET_RPC_VERSION_MINOR 23
+#define WALLET_RPC_VERSION_MINOR 24
#define MAKE_WALLET_RPC_VERSION(major,minor) (((major)<<16)|(minor))
#define WALLET_RPC_VERSION MAKE_WALLET_RPC_VERSION(WALLET_RPC_VERSION_MAJOR, WALLET_RPC_VERSION_MINOR)
namespace tools
@@ -2664,6 +2664,8 @@ namespace wallet_rpc
struct request_t
{
std::string address;
+ std::string username;
+ std::string password;
bool trusted;
std::string ssl_support; // disabled, enabled, autodetect
std::string ssl_private_key_path;
@@ -2674,6 +2676,8 @@ namespace wallet_rpc
BEGIN_KV_SERIALIZE_MAP()
KV_SERIALIZE(address)
+ KV_SERIALIZE(username)
+ KV_SERIALIZE(password)
KV_SERIALIZE_OPT(trusted, false)
KV_SERIALIZE_OPT(ssl_support, (std::string)"autodetect")
KV_SERIALIZE(ssl_private_key_path)