diff --git a/src/net.cpp b/src/net.cpp index dd7bf283a..d223b3999 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -639,6 +639,9 @@ void CNode::copyStats(CNodeStats &stats) // Raw ping time is in microseconds, but show it to user as whole seconds (Bitcoin users should be well used to small numbers with many decimal places by now :) stats.dPingTime = (((double)nPingUsecTime) / 1e6); stats.dPingWait = (((double)nPingUsecWait) / 1e6); + + // Leave string empty if addrLocal invalid (not filled in yet) + stats.addrLocal = addrLocal.IsValid() ? addrLocal.ToString() : ""; } #undef X diff --git a/src/net.h b/src/net.h index 2c2d3a768..a1dc19df3 100644 --- a/src/net.h +++ b/src/net.h @@ -121,6 +121,7 @@ public: bool fSyncNode; double dPingTime; double dPingWait; + std::string addrLocal; }; diff --git a/src/rpcnet.cpp b/src/rpcnet.cpp index 7685dec57..3c9273985 100644 --- a/src/rpcnet.cpp +++ b/src/rpcnet.cpp @@ -66,6 +66,8 @@ Value getpeerinfo(const Array& params, bool fHelp) Object obj; obj.push_back(Pair("addr", stats.addrName)); + if (!(stats.addrLocal.empty())) + obj.push_back(Pair("addrlocal", stats.addrLocal)); obj.push_back(Pair("services", strprintf("%08"PRI64x, stats.nServices))); obj.push_back(Pair("lastsend", (boost::int64_t)stats.nLastSend)); obj.push_back(Pair("lastrecv", (boost::int64_t)stats.nLastRecv));