mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-09 20:11:09 +00:00
Fix peerset not filtering incoming connections in reserved-only (#6249)
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user