aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJosh Lehan <krellan@krellan.net>2013-08-21 22:50:19 -0700
committerJosh Lehan <krellan@krellan.net>2013-10-21 02:23:05 -0700
commit547c61f8d8b42296fd0a51bad4a2e3a3765aa7fd (patch)
treecb38813107fc20a5a7a5749f4812d6ec0bf785d7 /src
parentcc7562b7d2dc4eae6e3ab930a2a37cd3c00aac5d (diff)
Adding new "addrlocal" field to RPC getpeerinfo.
The existing CNode::addrLocal member is revealed to the user, as an address string, similar to the existing "addr" field. Instead of showing garbage or empty string, it simply will not appear in the output if local address not known yet.
Diffstat (limited to 'src')
-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));