mirror of
https://github.com/Retropex/bitcoin.git
synced 2025-05-14 20:20:43 +02:00
p2p: Always serialize local timestamp for version msg
This commit is contained in:
parent
9635760ce8
commit
fa1dc9b36a
@ -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);
|
||||||
|
Loading…
Reference in New Issue
Block a user