From bc48d299b6712f1af8192ae4e9b42d38e3474753 Mon Sep 17 00:00:00 2001 From: Nik Bougalis Date: Mon, 23 Feb 2015 15:36:18 -0800 Subject: [PATCH] Report server versions when crawling the overlay network --- src/ripple/overlay/impl/OverlayImpl.cpp | 3 +++ src/ripple/overlay/impl/PeerImp.cpp | 9 +++++++++ src/ripple/overlay/impl/PeerImp.h | 4 ++++ 3 files changed, 16 insertions(+) diff --git a/src/ripple/overlay/impl/OverlayImpl.cpp b/src/ripple/overlay/impl/OverlayImpl.cpp index 901ca3805..c12776e10 100644 --- a/src/ripple/overlay/impl/OverlayImpl.cpp +++ b/src/ripple/overlay/impl/OverlayImpl.cpp @@ -632,6 +632,9 @@ OverlayImpl::crawl() else pv[jss::ip] = sp->getRemoteAddress().to_string(); } + auto version = sp->getVersion (); + if (!version.empty ()) + pv["version"] = version; } } return jv; diff --git a/src/ripple/overlay/impl/PeerImp.cpp b/src/ripple/overlay/impl/PeerImp.cpp index 4638dcee9..65b08b998 100644 --- a/src/ripple/overlay/impl/PeerImp.cpp +++ b/src/ripple/overlay/impl/PeerImp.cpp @@ -197,6 +197,15 @@ PeerImp::crawl() const return beast::ci_equal(iter->second, "public"); } +std::string +PeerImp::getVersion() const +{ + if (hello_.has_fullversion ()) + return hello_.fullversion (); + + return std::string (); +} + Json::Value PeerImp::json() { diff --git a/src/ripple/overlay/impl/PeerImp.h b/src/ripple/overlay/impl/PeerImp.h index 4616f1943..8b57bb1f9 100644 --- a/src/ripple/overlay/impl/PeerImp.h +++ b/src/ripple/overlay/impl/PeerImp.h @@ -237,6 +237,10 @@ public: return publicKey_; } + /** Return the version of rippled that the peer is running, if reported. */ + std::string + getVersion() const; + Json::Value json() override;