RPC peers should return network version

This commit is contained in:
SergiySW 2017-08-04 10:35:57 +03:00
commit 1729ef940d
3 changed files with 15 additions and 5 deletions

View file

@ -1568,6 +1568,17 @@ std::vector <rai::endpoint> rai::peer_container::list ()
return result;
}
std::map<rai::endpoint, unsigned> rai::peer_container::list_version ()
{
std::map<rai::endpoint, unsigned> result;
std::lock_guard <std::mutex> lock (mutex);
for (auto i (peers.begin ()), j (peers.end ()); i != j; ++i)
{
result.insert (std::pair<rai::endpoint, unsigned> (i->endpoint, i->network_version));
}
return result;
}
rai::endpoint rai::peer_container::bootstrap_peer ()
{
rai::endpoint result (boost::asio::ip::address_v6::any (), 0);

View file

@ -180,6 +180,7 @@ public:
std::vector <peer_information> representatives (size_t);
// List of all peers
std::vector <rai::endpoint> list ();
std::map<rai::endpoint, unsigned> list_version ();
// A list of random peers with size the square root of total peer count
std::vector <rai::endpoint> list_sqrt ();
// Get the next peer for attempting bootstrap

View file

@ -1471,14 +1471,12 @@ void rai::rpc_handler::peers ()
{
boost::property_tree::ptree response_l;
boost::property_tree::ptree peers_l;
auto peers_list (node.peers.list());
auto peers_list (node.peers.list_version());
for (auto i (peers_list.begin ()), n (peers_list.end ()); i != n; ++i)
{
boost::property_tree::ptree entry;
std::stringstream text;
text << *i;
entry.put ("", text.str ());
peers_l.push_back (std::make_pair ("", entry));
text << i->first;
peers_l.push_back(boost::property_tree::ptree::value_type(text.str (), std::to_string (i->second)));
}
response_l.add_child ("peers", peers_l);
response (response_l);