aboutsummaryrefslogtreecommitdiff
path: root/src/wallet/wallet_rpc_server.cpp
diff options
context:
space:
mode:
author0xFFFC0000 <0xFFFC0000@proton.me>2024-02-18 18:36:52 +0000
committerwoodser <woodser@protonmail.com>2024-11-23 14:11:25 -0500
commitcd1c06038c8d5eba28b2b9b1216b1c475538e770 (patch)
tree082d6eb91b87b0a019471698bf22d13aebc56a34 /src/wallet/wallet_rpc_server.cpp
parent58a1d54a4f90a235616ede3f8ebae2b8dca41589 (diff)
downloadmonzero-core-cd1c06038c8d5eba28b2b9b1216b1c475538e770.tar.gz
monzero-core-cd1c06038c8d5eba28b2b9b1216b1c475538e770.tar.xz
monzero-core-cd1c06038c8d5eba28b2b9b1216b1c475538e770.zip
Daemon-specific proxy for the wallet-rpc.
1. Daemon-specific proxy is exclusive with global proxy (--proxy). 2. If you set global proxy (--proxy) you cannot set daemon-specific proxy. 3. If you don't set global proxy, you can set proxy (or not set) proxy for each daemon connection with the proxy field in jsonrpc to the wallet-rpc.
Diffstat (limited to 'src/wallet/wallet_rpc_server.cpp')
-rw-r--r--src/wallet/wallet_rpc_server.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/wallet/wallet_rpc_server.cpp b/src/wallet/wallet_rpc_server.cpp
index 3c548de13..a3f525eb3 100644
--- a/src/wallet/wallet_rpc_server.cpp
+++ b/src/wallet/wallet_rpc_server.cpp
@@ -4438,6 +4438,13 @@ namespace tools
er.message = "Command unavailable in restricted mode.";
return false;
}
+
+ if (m_wallet->has_proxy_option() && !req.proxy.empty())
+ {
+ er.code = WALLET_RPC_ERROR_CODE_PROXY_ALREADY_DEFINED;
+ er.message = "It is not possible to set daemon specific proxy when --proxy is defined.";
+ return false;
+ }
std::vector<std::vector<uint8_t>> ssl_allowed_fingerprints;
ssl_allowed_fingerprints.reserve(req.ssl_allowed_fingerprints.size());
@@ -4481,7 +4488,7 @@ namespace tools
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)))
+ if (!m_wallet->set_daemon(req.address, daemon_login, req.trusted, std::move(ssl_options), req.proxy))
{
er.code = WALLET_RPC_ERROR_CODE_NO_DAEMON_CONNECTION;
er.message = std::string("Unable to set daemon");