mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-10 20:03:34 -03:00
Use pong receive time rather than processing time
This commit is contained in:
parent
dd49e92fb0
commit
9f4da19bab
3 changed files with 9 additions and 3 deletions
|
@ -3544,7 +3544,7 @@ void static ProcessGetData(CNode* pfrom)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
|
bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, int64_t nTimeReceived)
|
||||||
{
|
{
|
||||||
RandAddSeedPerfmon();
|
RandAddSeedPerfmon();
|
||||||
LogPrint("net", "received: %s (%u bytes)\n", strCommand, vRecv.size());
|
LogPrint("net", "received: %s (%u bytes)\n", strCommand, vRecv.size());
|
||||||
|
@ -4054,7 +4054,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
|
||||||
|
|
||||||
else if (strCommand == "pong")
|
else if (strCommand == "pong")
|
||||||
{
|
{
|
||||||
int64_t pingUsecEnd = GetTimeMicros();
|
int64_t pingUsecEnd = nTimeReceived;
|
||||||
uint64_t nonce = 0;
|
uint64_t nonce = 0;
|
||||||
size_t nAvail = vRecv.in_avail();
|
size_t nAvail = vRecv.in_avail();
|
||||||
bool bPingFinished = false;
|
bool bPingFinished = false;
|
||||||
|
@ -4305,7 +4305,7 @@ bool ProcessMessages(CNode* pfrom)
|
||||||
bool fRet = false;
|
bool fRet = false;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
fRet = ProcessMessage(pfrom, strCommand, vRecv);
|
fRet = ProcessMessage(pfrom, strCommand, vRecv, msg.nTime);
|
||||||
boost::this_thread::interruption_point();
|
boost::this_thread::interruption_point();
|
||||||
}
|
}
|
||||||
catch (std::ios_base::failure& e)
|
catch (std::ios_base::failure& e)
|
||||||
|
|
|
@ -653,6 +653,9 @@ bool CNode::ReceiveMsgBytes(const char *pch, unsigned int nBytes)
|
||||||
|
|
||||||
pch += handled;
|
pch += handled;
|
||||||
nBytes -= handled;
|
nBytes -= handled;
|
||||||
|
|
||||||
|
if (msg.complete())
|
||||||
|
msg.nTime = GetTimeMicros();
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -173,11 +173,14 @@ public:
|
||||||
CDataStream vRecv; // received message data
|
CDataStream vRecv; // received message data
|
||||||
unsigned int nDataPos;
|
unsigned int nDataPos;
|
||||||
|
|
||||||
|
int64_t nTime; // time (in microseconds) of message receipt.
|
||||||
|
|
||||||
CNetMessage(int nTypeIn, int nVersionIn) : hdrbuf(nTypeIn, nVersionIn), vRecv(nTypeIn, nVersionIn) {
|
CNetMessage(int nTypeIn, int nVersionIn) : hdrbuf(nTypeIn, nVersionIn), vRecv(nTypeIn, nVersionIn) {
|
||||||
hdrbuf.resize(24);
|
hdrbuf.resize(24);
|
||||||
in_data = false;
|
in_data = false;
|
||||||
nHdrPos = 0;
|
nHdrPos = 0;
|
||||||
nDataPos = 0;
|
nDataPos = 0;
|
||||||
|
nTime = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool complete() const
|
bool complete() const
|
||||||
|
|
Loading…
Reference in a new issue