mirror of
https://github.com/ElementsProject/elements.git
synced 2026-08-16 13:01:19 +02:00
Merge 884bde510e into merged_master (Bitcoin PR #20291)
This commit is contained in:
commit
1ecb6390d4
2 changed files with 16 additions and 11 deletions
|
|
@ -281,8 +281,18 @@ protected:
|
|||
//! Select several addresses at once.
|
||||
void GetAddr_(std::vector<CAddress> &vAddr, size_t max_addresses, size_t max_pct) EXCLUSIVE_LOCKS_REQUIRED(cs);
|
||||
|
||||
//! Mark an entry as currently-connected-to.
|
||||
void Connected_(const CService &addr, int64_t nTime) EXCLUSIVE_LOCKS_REQUIRED(cs);
|
||||
/** We have successfully connected to this peer. Calling this function
|
||||
* updates the CAddress's nTime, which is used in our IsTerrible()
|
||||
* decisions and gossiped to peers. Callers should be careful that updating
|
||||
* this information doesn't leak topology information to network spies.
|
||||
*
|
||||
* net_processing calls this function when it *disconnects* from a peer to
|
||||
* not leak information about currently connected peers.
|
||||
*
|
||||
* @param[in] addr The address of the peer we were connected to
|
||||
* @param[in] nTime The time that we were last connected to this peer
|
||||
*/
|
||||
void Connected_(const CService& addr, int64_t nTime) EXCLUSIVE_LOCKS_REQUIRED(cs);
|
||||
|
||||
//! Update an entry's service bits.
|
||||
void SetServices_(const CService &addr, ServiceFlags nServices) EXCLUSIVE_LOCKS_REQUIRED(cs);
|
||||
|
|
@ -704,7 +714,7 @@ public:
|
|||
return vAddr;
|
||||
}
|
||||
|
||||
//! Mark an entry as currently-connected-to.
|
||||
//! Outer function for Connected_()
|
||||
void Connected(const CService &addr, int64_t nTime = GetAdjustedTime())
|
||||
{
|
||||
LOCK(cs);
|
||||
|
|
|
|||
|
|
@ -290,8 +290,6 @@ namespace {
|
|||
struct CNodeState {
|
||||
//! The peer's address
|
||||
const CService address;
|
||||
//! Whether we have a fully established connection.
|
||||
bool fCurrentlyConnected;
|
||||
//! The best known block we know this peer has announced.
|
||||
const CBlockIndex *pindexBestKnownBlock;
|
||||
//! The hash of the last unknown block this peer has announced.
|
||||
|
|
@ -390,7 +388,6 @@ struct CNodeState {
|
|||
CNodeState(CAddress addrIn, bool is_inbound, bool is_manual)
|
||||
: address(addrIn), m_is_inbound(is_inbound), m_is_manual_connection(is_manual)
|
||||
{
|
||||
fCurrentlyConnected = false;
|
||||
pindexBestKnownBlock = nullptr;
|
||||
hashLastUnknownBlock.SetNull();
|
||||
pindexLastCommonBlock = nullptr;
|
||||
|
|
@ -857,8 +854,9 @@ void PeerManager::FinalizeNode(const CNode& node, bool& fUpdateConnectionTime) {
|
|||
if (state->fSyncStarted)
|
||||
nSyncStarted--;
|
||||
|
||||
if (misbehavior == 0 && state->fCurrentlyConnected && !node.IsBlockOnlyConn()) {
|
||||
// Note: we avoid changing visible addrman state for block-relay-only peers
|
||||
if (node.fSuccessfullyConnected && misbehavior == 0 &&
|
||||
!node.IsBlockOnlyConn() && !node.IsInboundConn()) {
|
||||
// Only change visible addrman state for outbound, full-relay peers
|
||||
fUpdateConnectionTime = true;
|
||||
}
|
||||
|
||||
|
|
@ -2488,9 +2486,6 @@ void PeerManager::ProcessMessage(CNode& pfrom, const std::string& msg_type, CDat
|
|||
if (pfrom.fSuccessfullyConnected) return;
|
||||
|
||||
if (!pfrom.IsInboundConn()) {
|
||||
// Mark this node as currently connected, so we update its timestamp later.
|
||||
LOCK(cs_main);
|
||||
State(pfrom.GetId())->fCurrentlyConnected = true;
|
||||
LogPrintf("New outbound peer connected: version: %d, blocks=%d, peer=%d%s (%s)\n",
|
||||
pfrom.nVersion.load(), pfrom.nStartingHeight,
|
||||
pfrom.GetId(), (fLogIPs ? strprintf(", peeraddr=%s", pfrom.addr.ToString()) : ""),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue