mirror of
https://github.com/sigp/lighthouse.git
synced 2026-03-20 13:24:44 +00:00
More stringent dialing (#2363)
* More stringent dialing * Cover cached enr dialing
This commit is contained in:
@@ -668,18 +668,16 @@ impl<TSpec: EthSpec> PeerManager<TSpec> {
|
||||
.cached_enrs()
|
||||
.filter_map(|(peer_id, enr)| {
|
||||
let peers = self.network_globals.peers.read();
|
||||
if predicate(enr)
|
||||
&& !peers.is_connected_or_dialing(peer_id)
|
||||
&& !peers.is_banned(peer_id)
|
||||
{
|
||||
if predicate(enr) && peers.should_dial(peer_id) {
|
||||
Some(*peer_id)
|
||||
} else {
|
||||
None
|
||||
}
|
||||
})
|
||||
.collect();
|
||||
for peer in &peers_to_dial {
|
||||
self.dial_peer(peer);
|
||||
for peer_id in &peers_to_dial {
|
||||
debug!(self.log, "Dialing cached ENR peer"; "peer_id" => %peer_id);
|
||||
self.dial_peer(peer_id);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -698,16 +696,7 @@ impl<TSpec: EthSpec> PeerManager<TSpec> {
|
||||
// we attempt a connection if this peer is a subnet peer or if the max peer count
|
||||
// is not yet filled (including dialing peers)
|
||||
if (min_ttl.is_some() || connected_or_dialing + to_dial_peers.len() < self.max_peers)
|
||||
&& !self
|
||||
.network_globals
|
||||
.peers
|
||||
.read()
|
||||
.is_connected_or_dialing(&peer_id)
|
||||
&& !self
|
||||
.network_globals
|
||||
.peers
|
||||
.read()
|
||||
.is_banned_or_disconnected(&peer_id)
|
||||
&& self.network_globals.peers.read().should_dial(&peer_id)
|
||||
{
|
||||
// This should be updated with the peer dialing. In fact created once the peer is
|
||||
// dialed
|
||||
|
||||
Reference in New Issue
Block a user