p2p: Always serialize local timestamp for version msg

This commit is contained in:
MarcoFalke 2021-12-07 16:32:05 +01:00
parent 9635760ce8
commit fa1dc9b36a
No known key found for this signature in database
GPG Key ID: CE2B75697E69A548

View File

@ -386,7 +386,7 @@ private:
EXCLUSIVE_LOCKS_REQUIRED(::cs_main); EXCLUSIVE_LOCKS_REQUIRED(::cs_main);
/** Send a version message to a peer */ /** Send a version message to a peer */
void PushNodeVersion(CNode& pnode, int64_t nTime); void PushNodeVersion(CNode& pnode);
/** Send a ping message every PING_INTERVAL or if requested via RPC. May /** Send a ping message every PING_INTERVAL or if requested via RPC. May
* mark the peer to be disconnected if a ping has timed out. * mark the peer to be disconnected if a ping has timed out.
@ -1090,12 +1090,13 @@ void PeerManagerImpl::FindNextBlocksToDownload(NodeId nodeid, unsigned int count
} // namespace } // namespace
void PeerManagerImpl::PushNodeVersion(CNode& pnode, int64_t nTime) void PeerManagerImpl::PushNodeVersion(CNode& pnode)
{ {
// Note that pnode->GetLocalServices() is a reflection of the local // Note that pnode->GetLocalServices() is a reflection of the local
// services we were offering when the CNode object was created for this // services we were offering when the CNode object was created for this
// peer. // peer.
uint64_t my_services{pnode.GetLocalServices()}; uint64_t my_services{pnode.GetLocalServices()};
const int64_t nTime{count_seconds(GetTime<std::chrono::seconds>())};
uint64_t nonce = pnode.GetLocalNonce(); uint64_t nonce = pnode.GetLocalNonce();
const int nNodeStartingHeight{m_best_height}; const int nNodeStartingHeight{m_best_height};
NodeId nodeid = pnode.GetId(); NodeId nodeid = pnode.GetId();
@ -1167,7 +1168,7 @@ void PeerManagerImpl::InitializeNode(CNode *pnode)
m_peer_map.emplace_hint(m_peer_map.end(), nodeid, std::move(peer)); m_peer_map.emplace_hint(m_peer_map.end(), nodeid, std::move(peer));
} }
if (!pnode->IsInboundConn()) { if (!pnode->IsInboundConn()) {
PushNodeVersion(*pnode, GetTime()); PushNodeVersion(*pnode);
} }
} }
@ -2599,7 +2600,9 @@ void PeerManagerImpl::ProcessMessage(CNode& pfrom, const std::string& msg_type,
// Inbound peers send us their version message when they connect. // Inbound peers send us their version message when they connect.
// We send our version message in response. // We send our version message in response.
if (pfrom.IsInboundConn()) PushNodeVersion(pfrom, GetAdjustedTime()); if (pfrom.IsInboundConn()) {
PushNodeVersion(pfrom);
}
// Change version // Change version
const int greatest_common_version = std::min(nVersion, PROTOCOL_VERSION); const int greatest_common_version = std::min(nVersion, PROTOCOL_VERSION);