diff options
| author | 0xFFFC0000 <0xFFFC0000@proton.me> | 2024-02-18 18:36:52 +0000 |
|---|---|---|
| committer | woodser <woodser@protonmail.com> | 2024-11-23 14:11:25 -0500 |
| commit | cd1c06038c8d5eba28b2b9b1216b1c475538e770 (patch) | |
| tree | 082d6eb91b87b0a019471698bf22d13aebc56a34 /src/wallet/wallet_rpc_server.cpp | |
| parent | 58a1d54a4f90a235616ede3f8ebae2b8dca41589 (diff) | |
| download | monzero-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.cpp | 9 |
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"); |
