From 1729ef940d076926524d0171fc5f0565bc45e566 Mon Sep 17 00:00:00 2001 From: SergiySW Date: Fri, 4 Aug 2017 10:35:57 +0300 Subject: [PATCH] RPC peers should return network version --- rai/node/node.cpp | 11 +++++++++++ rai/node/node.hpp | 1 + rai/node/rpc.cpp | 8 +++----- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/rai/node/node.cpp b/rai/node/node.cpp index fcbb0254..faf7d4be 100755 --- a/rai/node/node.cpp +++ b/rai/node/node.cpp @@ -1568,6 +1568,17 @@ std::vector rai::peer_container::list () return result; } +std::map rai::peer_container::list_version () +{ + std::map result; + std::lock_guard lock (mutex); + for (auto i (peers.begin ()), j (peers.end ()); i != j; ++i) + { + result.insert (std::pair (i->endpoint, i->network_version)); + } + return result; +} + rai::endpoint rai::peer_container::bootstrap_peer () { rai::endpoint result (boost::asio::ip::address_v6::any (), 0); diff --git a/rai/node/node.hpp b/rai/node/node.hpp index 6d41e3e7..d6cdf9d1 100644 --- a/rai/node/node.hpp +++ b/rai/node/node.hpp @@ -180,6 +180,7 @@ public: std::vector representatives (size_t); // List of all peers std::vector list (); + std::map list_version (); // A list of random peers with size the square root of total peer count std::vector list_sqrt (); // Get the next peer for attempting bootstrap diff --git a/rai/node/rpc.cpp b/rai/node/rpc.cpp index 5a1257ee..8645061c 100755 --- a/rai/node/rpc.cpp +++ b/rai/node/rpc.cpp @@ -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);