mirror of
https://github.com/monero-project/monero.git
synced 2024-12-23 03:59:33 +00:00
Merge pull request #3932
8962f00
simplewallet: add optional trusted/untrusted argument to set_daemon (moneromooo-monero)941a608
util: consider Tor/I2P addresses to be non local (moneromooo-monero)2b3357e
README: mention --untrusted-daemon (moneromooo-monero)
This commit is contained in:
commit
3721298cf6
3 changed files with 37 additions and 1 deletions
|
@ -567,6 +567,8 @@ setting the following configuration parameters and environment variables:
|
|||
as well.
|
||||
* Do NOT pass `--detach` when running through torsocks with systemd, (see
|
||||
[utils/systemd/monerod.service](utils/systemd/monerod.service) for details).
|
||||
* If you use the wallet with a Tor daemon via the loopback IP (eg, 127.0.0.1:9050),
|
||||
then use `--untrusted-daemon` unless it is your own hidden service.
|
||||
|
||||
Example command line to start monerod through Tor:
|
||||
|
||||
|
|
|
@ -727,6 +727,13 @@ std::string get_nix_version_display_string()
|
|||
|
||||
bool is_local_address(const std::string &address)
|
||||
{
|
||||
// always assume Tor/I2P addresses to be untrusted by default
|
||||
if (boost::ends_with(address, ".onion") || boost::ends_with(address, ".i2p"))
|
||||
{
|
||||
MDEBUG("Address '" << address << "' is Tor/I2P, non local");
|
||||
return false;
|
||||
}
|
||||
|
||||
// extract host
|
||||
epee::net_utils::http::url_content u_c;
|
||||
if (!epee::net_utils::parse_url(address, u_c))
|
||||
|
|
|
@ -2134,7 +2134,7 @@ simple_wallet::simple_wallet()
|
|||
tr("Stop mining in the daemon."));
|
||||
m_cmd_binder.set_handler("set_daemon",
|
||||
boost::bind(&simple_wallet::set_daemon, this, _1),
|
||||
tr("set_daemon <host>[:<port>]"),
|
||||
tr("set_daemon <host>[:<port>] [trusted|untrusted]"),
|
||||
tr("Set another daemon to connect to."));
|
||||
m_cmd_binder.set_handler("save_bc",
|
||||
boost::bind(&simple_wallet::save_bc, this, _1),
|
||||
|
@ -3900,6 +3900,33 @@ bool simple_wallet::set_daemon(const std::vector<std::string>& args)
|
|||
}
|
||||
LOCK_IDLE_SCOPE();
|
||||
m_wallet->init(daemon_url);
|
||||
|
||||
if (args.size() == 2)
|
||||
{
|
||||
if (args[1] == "trusted")
|
||||
m_trusted_daemon = true;
|
||||
else if (args[1] == "untrusted")
|
||||
m_trusted_daemon = false;
|
||||
else
|
||||
{
|
||||
fail_msg_writer() << tr("Expected trusted or untrusted, got ") << args[1] << ": assuming untrusted";
|
||||
m_trusted_daemon = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_trusted_daemon = false;
|
||||
try
|
||||
{
|
||||
if (tools::is_local_address(m_wallet->get_daemon_address()))
|
||||
{
|
||||
MINFO(tr("Daemon is local, assuming trusted"));
|
||||
m_trusted_daemon = true;
|
||||
}
|
||||
}
|
||||
catch (const std::exception &e) { }
|
||||
}
|
||||
success_msg_writer() << boost::format("Daemon set to %s, %s") % daemon_url % (*m_trusted_daemon ? tr("trusted") : tr("untrusted"));
|
||||
} else {
|
||||
fail_msg_writer() << tr("This does not seem to be a valid daemon URL.");
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue