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
|
@ -567,6 +567,8 @@ setting the following configuration parameters and environment variables:
|
||||||
as well.
|
as well.
|
||||||
* Do NOT pass `--detach` when running through torsocks with systemd, (see
|
* Do NOT pass `--detach` when running through torsocks with systemd, (see
|
||||||
[utils/systemd/monerod.service](utils/systemd/monerod.service) for details).
|
[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:
|
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)
|
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
|
// extract host
|
||||||
epee::net_utils::http::url_content u_c;
|
epee::net_utils::http::url_content u_c;
|
||||||
if (!epee::net_utils::parse_url(address, 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."));
|
tr("Stop mining in the daemon."));
|
||||||
m_cmd_binder.set_handler("set_daemon",
|
m_cmd_binder.set_handler("set_daemon",
|
||||||
boost::bind(&simple_wallet::set_daemon, this, _1),
|
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."));
|
tr("Set another daemon to connect to."));
|
||||||
m_cmd_binder.set_handler("save_bc",
|
m_cmd_binder.set_handler("save_bc",
|
||||||
boost::bind(&simple_wallet::save_bc, this, _1),
|
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();
|
LOCK_IDLE_SCOPE();
|
||||||
m_wallet->init(daemon_url);
|
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 {
|
} else {
|
||||||
fail_msg_writer() << tr("This does not seem to be a valid daemon URL.");
|
fail_msg_writer() << tr("This does not seem to be a valid daemon URL.");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue