mirror of
https://github.com/dashpay/dash.git
synced 2024-12-28 05:23:01 +01:00
Merge #9052: Use RelevantServices instead of node_network in AttemptToEvict.
d32036a
Use RelevantServices instead of node_network in AttemptToEvict. (Gregory Maxwell)
This commit is contained in:
commit
c113a651f1
@ -809,7 +809,7 @@ struct NodeEvictionCandidate
|
|||||||
int64_t nMinPingUsecTime;
|
int64_t nMinPingUsecTime;
|
||||||
int64_t nLastBlockTime;
|
int64_t nLastBlockTime;
|
||||||
int64_t nLastTXTime;
|
int64_t nLastTXTime;
|
||||||
bool fNetworkNode;
|
bool fRelevantServices;
|
||||||
bool fRelayTxes;
|
bool fRelayTxes;
|
||||||
bool fBloomFilter;
|
bool fBloomFilter;
|
||||||
CAddress addr;
|
CAddress addr;
|
||||||
@ -834,7 +834,7 @@ static bool CompareNodeBlockTime(const NodeEvictionCandidate &a, const NodeEvict
|
|||||||
{
|
{
|
||||||
// There is a fall-through here because it is common for a node to have many peers which have not yet relayed a block.
|
// There is a fall-through here because it is common for a node to have many peers which have not yet relayed a block.
|
||||||
if (a.nLastBlockTime != b.nLastBlockTime) return a.nLastBlockTime < b.nLastBlockTime;
|
if (a.nLastBlockTime != b.nLastBlockTime) return a.nLastBlockTime < b.nLastBlockTime;
|
||||||
if (a.fNetworkNode != b.fNetworkNode) return b.fNetworkNode;
|
if (a.fRelevantServices != b.fRelevantServices) return b.fRelevantServices;
|
||||||
return a.nTimeConnected > b.nTimeConnected;
|
return a.nTimeConnected > b.nTimeConnected;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -869,7 +869,8 @@ bool CConnman::AttemptToEvictConnection()
|
|||||||
if (node->fDisconnect)
|
if (node->fDisconnect)
|
||||||
continue;
|
continue;
|
||||||
NodeEvictionCandidate candidate = {node->id, node->nTimeConnected, node->nMinPingUsecTime,
|
NodeEvictionCandidate candidate = {node->id, node->nTimeConnected, node->nMinPingUsecTime,
|
||||||
node->nLastBlockTime, node->nLastTXTime, node->fNetworkNode,
|
node->nLastBlockTime, node->nLastTXTime,
|
||||||
|
(node->nServices & nRelevantServices) == nRelevantServices,
|
||||||
node->fRelayTxes, node->pfilter != NULL, node->addr, node->nKeyedNetGroup};
|
node->fRelayTxes, node->pfilter != NULL, node->addr, node->nKeyedNetGroup};
|
||||||
vEvictionCandidates.push_back(candidate);
|
vEvictionCandidates.push_back(candidate);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user