mirror of
https://gitlab.com/pulsechaincom/lighthouse-pulse.git
synced 2025-01-12 05:50:07 +00:00
Call unban only when necessary (#1821)
This PR prevents a user-facing error. It prevents optimistically unbanning a peer and instead checks the state of the peer before requesting the peers state to be unbanned.
This commit is contained in:
parent
1644289a08
commit
a3cc1a1e0f
@ -179,13 +179,16 @@ impl<TSpec: EthSpec> PeerManager<TSpec> {
|
||||
GoodbyeReason::BadScore,
|
||||
));
|
||||
peer_db.notify_disconnecting(peer_id);
|
||||
} else if info.is_banned() {
|
||||
unban_peer = Some(peer_id);
|
||||
}
|
||||
unban_peer = Some(peer_id);
|
||||
}
|
||||
ScoreState::Healthy => {
|
||||
debug!(self.log, "Peer transitioned to healthy state"; "peer_id" => peer_id.to_string(), "score" => info.score().to_string(), "past_state" => previous_state.to_string());
|
||||
// unban the peer if it was previously banned.
|
||||
unban_peer = Some(peer_id);
|
||||
if info.is_banned() {
|
||||
unban_peer = Some(peer_id);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@ -675,7 +678,9 @@ impl<TSpec: EthSpec> PeerManager<TSpec> {
|
||||
ScoreState::Disconnected => {
|
||||
debug!(self.log, "Peer transitioned to disconnect state"; "peer_id" => peer_id.to_string(), "score" => info.score().to_string(), "past_state" => previous_state.to_string());
|
||||
// disconnect the peer if it's currently connected or dialing
|
||||
to_unban_peers.push(peer_id.clone());
|
||||
if info.is_banned() {
|
||||
to_unban_peers.push(peer_id.clone());
|
||||
}
|
||||
if info.is_connected_or_dialing() {
|
||||
// Change the state to inform that we are disconnecting the peer.
|
||||
info.disconnecting(false);
|
||||
|
Loading…
Reference in New Issue
Block a user