aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/net.cpp3
-rw-r--r--src/net.h1
-rw-r--r--src/rpcnet.cpp2
3 files changed, 6 insertions, 0 deletions
diff --git a/src/net.cpp b/src/net.cpp
index dd7bf283a9..d223b3999e 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 2c2d3a768a..a1dc19df34 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 7685dec57b..3c92739852 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));