From f9aa9e469d4185514552300d0216faa898fc1f04 Mon Sep 17 00:00:00 2001 From: Pierre Krieger Date: Thu, 3 Jun 2021 10:43:51 +0200 Subject: [PATCH] Don't disconnect reserved peers if their reputation falls below threshold --- client/peerset/src/lib.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/client/peerset/src/lib.rs b/client/peerset/src/lib.rs index eefab81b851da..35bbea4bfff4a 100644 --- a/client/peerset/src/lib.rs +++ b/client/peerset/src/lib.rs @@ -427,19 +427,25 @@ impl Peerset { return; } - debug!(target: "peerset", "Report {}: {:+} to {}. Reason: {}, Disconnecting", + debug!(target: "peerset", "Report {}: {:+} to {} (below ban threshold). Reason: {}", peer_id, change.value, reputation.reputation(), change.reason ); drop(reputation); for set_index in 0..self.data.num_sets() { + if self.reserved_nodes[set_index].0.contains(&peer_id) { + continue; + } + if let peersstate::Peer::Connected(peer) = self.data.peer(set_index, &peer_id) { let peer = peer.disconnect(); self.message_queue.push_back(Message::Drop { set_id: SetId(set_index), peer_id: peer.into_peer_id(), }); + + self.alloc_slots(SetId(set_index)); } } }