Add bytessent, bytesrecv and syncnode to getpeerinfo
This commit is contained in:
parent
6ed71b5e4f
commit
86648a8d16
@ -619,6 +619,9 @@ void CNode::copyStats(CNodeStats &stats)
|
||||
X(nReleaseTime);
|
||||
X(nStartingHeight);
|
||||
X(nMisbehavior);
|
||||
X(nSendBytes);
|
||||
X(nRecvBytes);
|
||||
stats.fSyncNode = (this == pnodeSync);
|
||||
}
|
||||
#undef X
|
||||
|
||||
@ -713,6 +716,7 @@ void SocketSendData(CNode *pnode)
|
||||
int nBytes = send(pnode->hSocket, &data[pnode->nSendOffset], data.size() - pnode->nSendOffset, MSG_NOSIGNAL | MSG_DONTWAIT);
|
||||
if (nBytes > 0) {
|
||||
pnode->nLastSend = GetTime();
|
||||
pnode->nSendBytes += nBytes;
|
||||
pnode->nSendOffset += nBytes;
|
||||
if (pnode->nSendOffset == data.size()) {
|
||||
pnode->nSendOffset = 0;
|
||||
@ -976,6 +980,7 @@ void ThreadSocketHandler()
|
||||
if (!pnode->ReceiveMsgBytes(pchBuf, nBytes))
|
||||
pnode->CloseSocketDisconnect();
|
||||
pnode->nLastRecv = GetTime();
|
||||
pnode->nRecvBytes += nBytes;
|
||||
}
|
||||
else if (nBytes == 0)
|
||||
{
|
||||
|
@ -102,6 +102,9 @@ public:
|
||||
int64 nReleaseTime;
|
||||
int nStartingHeight;
|
||||
int nMisbehavior;
|
||||
uint64 nSendBytes;
|
||||
uint64 nRecvBytes;
|
||||
bool fSyncNode;
|
||||
};
|
||||
|
||||
|
||||
@ -156,12 +159,14 @@ public:
|
||||
CDataStream ssSend;
|
||||
size_t nSendSize; // total size of all vSendMsg entries
|
||||
size_t nSendOffset; // offset inside the first vSendMsg already sent
|
||||
uint64 nSendBytes;
|
||||
std::deque<CSerializeData> vSendMsg;
|
||||
CCriticalSection cs_vSend;
|
||||
|
||||
std::deque<CInv> vRecvGetData;
|
||||
std::deque<CNetMessage> vRecvMsg;
|
||||
CCriticalSection cs_vRecvMsg;
|
||||
uint64 nRecvBytes;
|
||||
int nRecvVersion;
|
||||
|
||||
int64 nLastSend;
|
||||
@ -223,6 +228,8 @@ public:
|
||||
nRecvVersion = MIN_PROTO_VERSION;
|
||||
nLastSend = 0;
|
||||
nLastRecv = 0;
|
||||
nSendBytes = 0;
|
||||
nRecvBytes = 0;
|
||||
nLastSendEmpty = GetTime();
|
||||
nTimeConnected = GetTime();
|
||||
addr = addrIn;
|
||||
|
@ -51,6 +51,8 @@ Value getpeerinfo(const Array& params, bool fHelp)
|
||||
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));
|
||||
obj.push_back(Pair("bytessent", (boost::int64_t)stats.nSendBytes));
|
||||
obj.push_back(Pair("bytesrecv", (boost::int64_t)stats.nRecvBytes));
|
||||
obj.push_back(Pair("conntime", (boost::int64_t)stats.nTimeConnected));
|
||||
obj.push_back(Pair("version", stats.nVersion));
|
||||
obj.push_back(Pair("subver", stats.strSubVer));
|
||||
@ -58,6 +60,8 @@ Value getpeerinfo(const Array& params, bool fHelp)
|
||||
obj.push_back(Pair("releasetime", (boost::int64_t)stats.nReleaseTime));
|
||||
obj.push_back(Pair("startingheight", stats.nStartingHeight));
|
||||
obj.push_back(Pair("banscore", stats.nMisbehavior));
|
||||
if (stats.fSyncNode)
|
||||
obj.push_back(Pair("syncnode", true));
|
||||
|
||||
ret.push_back(obj);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user