mirror of
https://codeberg.org/anoncontributorxmr/monero.git
synced 2024-12-02 03:53:14 +00:00
wallet2: remember daemon address overrides when loading a new wallet
This commit is contained in:
parent
e49a055e89
commit
9c1f970b82
2 changed files with 26 additions and 2 deletions
|
@ -149,6 +149,9 @@ static const std::string MULTISIG_EXTRA_INFO_MAGIC = "MultisigxV1";
|
||||||
|
|
||||||
static const std::string ASCII_OUTPUT_MAGIC = "MoneroAsciiDataV1";
|
static const std::string ASCII_OUTPUT_MAGIC = "MoneroAsciiDataV1";
|
||||||
|
|
||||||
|
boost::mutex tools::wallet2::default_daemon_address_lock;
|
||||||
|
std::string tools::wallet2::default_daemon_address = "";
|
||||||
|
|
||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
std::string get_default_ringdb_path()
|
std::string get_default_ringdb_path()
|
||||||
|
@ -412,6 +415,15 @@ std::unique_ptr<tools::wallet2> make_basic(const boost::program_options::variabl
|
||||||
daemon_port = get_config(nettype).RPC_DEFAULT_PORT;
|
daemon_port = get_config(nettype).RPC_DEFAULT_PORT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// if no daemon settings are given and we have a previous one, reuse that one
|
||||||
|
if (command_line::is_arg_defaulted(vm, opts.daemon_host) && command_line::is_arg_defaulted(vm, opts.daemon_port) && command_line::is_arg_defaulted(vm, opts.daemon_address))
|
||||||
|
{
|
||||||
|
// not a bug: taking a const ref to a temporary in this way is actually ok in a recent C++ standard
|
||||||
|
const std::string &def = tools::wallet2::get_default_daemon_address();
|
||||||
|
if (!def.empty())
|
||||||
|
daemon_address = def;
|
||||||
|
}
|
||||||
|
|
||||||
if (daemon_address.empty())
|
if (daemon_address.empty())
|
||||||
daemon_address = std::string("http://") + daemon_host + ":" + std::to_string(daemon_port);
|
daemon_address = std::string("http://") + daemon_host + ":" + std::to_string(daemon_port);
|
||||||
|
|
||||||
|
@ -1312,8 +1324,15 @@ bool wallet2::set_daemon(std::string daemon_address, boost::optional<epee::net_u
|
||||||
m_node_rpc_proxy.invalidate();
|
m_node_rpc_proxy.invalidate();
|
||||||
}
|
}
|
||||||
|
|
||||||
MINFO("setting daemon to " << get_daemon_address());
|
const std::string address = get_daemon_address();
|
||||||
return m_http_client.set_server(get_daemon_address(), get_daemon_login(), std::move(ssl_options));
|
MINFO("setting daemon to " << address);
|
||||||
|
bool ret = m_http_client.set_server(address, get_daemon_login(), std::move(ssl_options));
|
||||||
|
if (ret)
|
||||||
|
{
|
||||||
|
CRITICAL_REGION_LOCAL(default_daemon_address_lock);
|
||||||
|
default_daemon_address = address;
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------------------
|
||||||
bool wallet2::init(std::string daemon_address, boost::optional<epee::net_utils::http::login> daemon_login, boost::asio::ip::tcp::endpoint proxy, uint64_t upper_transaction_weight_limit, bool trusted_daemon, epee::net_utils::ssl_options_t ssl_options)
|
bool wallet2::init(std::string daemon_address, boost::optional<epee::net_utils::http::login> daemon_login, boost::asio::ip::tcp::endpoint proxy, uint64_t upper_transaction_weight_limit, bool trusted_daemon, epee::net_utils::ssl_options_t ssl_options)
|
||||||
|
|
|
@ -1386,6 +1386,8 @@ private:
|
||||||
uint64_t credits() const { return m_rpc_payment_state.credits; }
|
uint64_t credits() const { return m_rpc_payment_state.credits; }
|
||||||
void credit_report(uint64_t &expected_spent, uint64_t &discrepancy) const { expected_spent = m_rpc_payment_state.expected_spent; discrepancy = m_rpc_payment_state.discrepancy; }
|
void credit_report(uint64_t &expected_spent, uint64_t &discrepancy) const { expected_spent = m_rpc_payment_state.expected_spent; discrepancy = m_rpc_payment_state.discrepancy; }
|
||||||
|
|
||||||
|
static std::string get_default_daemon_address() { CRITICAL_REGION_LOCAL(default_daemon_address_lock); return default_daemon_address; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/*!
|
/*!
|
||||||
* \brief Stores wallet information to wallet file.
|
* \brief Stores wallet information to wallet file.
|
||||||
|
@ -1623,6 +1625,9 @@ private:
|
||||||
std::unique_ptr<wallet_device_callback> m_device_callback;
|
std::unique_ptr<wallet_device_callback> m_device_callback;
|
||||||
|
|
||||||
ExportFormat m_export_format;
|
ExportFormat m_export_format;
|
||||||
|
|
||||||
|
static boost::mutex default_daemon_address_lock;
|
||||||
|
static std::string default_daemon_address;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
BOOST_CLASS_VERSION(tools::wallet2, 29)
|
BOOST_CLASS_VERSION(tools::wallet2, 29)
|
||||||
|
|
Loading…
Reference in a new issue