Skip to content
Snippets Groups Projects
Commit 25fe9af5 authored by Pierre Krieger's avatar Pierre Krieger Committed by GitHub
Browse files

Fix peerset not filtering incoming connections in reserved-only (#6249)

parent ea1eb4e5
Branches
No related merge requests found
......@@ -520,6 +520,13 @@ impl Peerset {
trace!(target: "peerset", "Incoming {:?}", peer_id);
self.update_time();
if self.reserved_only {
if !self.priority_groups.get(RESERVED_NODES).map_or(false, |n| n.contains(&peer_id)) {
self.message_queue.push_back(Message::Reject(index));
return;
}
}
let not_connected = match self.data.peer(&peer_id) {
// If we're already connected, don't answer, as the docs mention.
peersstate::Peer::Connected(_) => return,
......@@ -740,6 +747,26 @@ mod tests {
]);
}
#[test]
fn test_peerset_reject_incoming_in_reserved_only() {
let incoming = PeerId::random();
let ii = IncomingIndex(1);
let config = PeersetConfig {
in_peers: 50,
out_peers: 50,
bootnodes: vec![],
reserved_only: true,
priority_groups: vec![],
};
let (mut peerset, _) = Peerset::from_config(config);
peerset.incoming(incoming.clone(), ii);
assert_messages(peerset, vec![
Message::Reject(ii),
]);
}
#[test]
fn test_peerset_discovered() {
let bootnode = PeerId::random();
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment