simplewallet: add public_nodes command
Lists nodes exposing their RPC port for public use
This commit is contained in:
@@ -13549,4 +13549,25 @@ uint64_t wallet2::get_bytes_received() const
|
||||
{
|
||||
return m_http_client.get_bytes_received();
|
||||
}
|
||||
//----------------------------------------------------------------------------------------------------
|
||||
std::vector<cryptonote::public_node> wallet2::get_public_nodes(bool white_only)
|
||||
{
|
||||
cryptonote::COMMAND_RPC_GET_PUBLIC_NODES::request req = AUTO_VAL_INIT(req);
|
||||
cryptonote::COMMAND_RPC_GET_PUBLIC_NODES::response res = AUTO_VAL_INIT(res);
|
||||
|
||||
req.white = true;
|
||||
req.gray = !white_only;
|
||||
|
||||
{
|
||||
const boost::lock_guard<boost::recursive_mutex> lock{m_daemon_rpc_mutex};
|
||||
bool r = epee::net_utils::invoke_http_json("/get_public_nodes", req, res, m_http_client, rpc_timeout);
|
||||
THROW_ON_RPC_RESPONSE_ERROR_GENERIC(r, {}, res, "/get_public_nodes");
|
||||
}
|
||||
|
||||
std::vector<cryptonote::public_node> nodes;
|
||||
nodes = res.white;
|
||||
nodes.reserve(nodes.size() + res.gray.size());
|
||||
std::copy(res.gray.begin(), res.gray.end(), std::back_inserter(nodes));
|
||||
return nodes;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -886,6 +886,8 @@ private:
|
||||
uint64_t get_last_block_reward() const { return m_last_block_reward; }
|
||||
uint64_t get_device_last_key_image_sync() const { return m_device_last_key_image_sync; }
|
||||
|
||||
std::vector<cryptonote::public_node> get_public_nodes(bool white_only = true);
|
||||
|
||||
template <class t_archive>
|
||||
inline void serialize(t_archive &a, const unsigned int ver)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user