From fe9443b53c61edb8bf76f8dac33893d29d0203ec Mon Sep 17 00:00:00 2001 From: Konstantin Pandl Date: Mon, 15 Jan 2024 13:02:08 -0800 Subject: [PATCH 1/3] filter peer_request for requester's address --- node/router/src/inbound.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/node/router/src/inbound.rs b/node/router/src/inbound.rs index c8cbd198de..b9e97190da 100644 --- a/node/router/src/inbound.rs +++ b/node/router/src/inbound.rs @@ -261,8 +261,8 @@ pub trait Inbound: Reading + Outbound { fn peer_request(&self, peer_ip: SocketAddr) -> bool { // Retrieve the connected peers. let peers = self.router().connected_peers(); - // Filter out invalid addresses. - let peers = peers.into_iter().filter(|ip| self.router().is_valid_peer_ip(ip)).take(u8::MAX as usize).collect(); + // Filter out invalid addresses and the requesting peer's address. + let peers = peers.into_iter().filter(|ip| *ip != peer_ip && self.router().is_valid_peer_ip(ip)).take(u8::MAX as usize).collect(); // Send a `PeerResponse` message to the peer. self.send(peer_ip, Message::PeerResponse(PeerResponse { peers })); true From 473693d5fcf0e06984d62a3ef3494e96c96365d5 Mon Sep 17 00:00:00 2001 From: Konstantin Pandl Date: Wed, 17 Jan 2024 14:51:50 -0800 Subject: [PATCH 2/3] fix formatting --- node/router/src/inbound.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/node/router/src/inbound.rs b/node/router/src/inbound.rs index b9e97190da..2614844f70 100644 --- a/node/router/src/inbound.rs +++ b/node/router/src/inbound.rs @@ -262,7 +262,11 @@ pub trait Inbound: Reading + Outbound { // Retrieve the connected peers. let peers = self.router().connected_peers(); // Filter out invalid addresses and the requesting peer's address. - let peers = peers.into_iter().filter(|ip| *ip != peer_ip && self.router().is_valid_peer_ip(ip)).take(u8::MAX as usize).collect(); + let peers = peers + .into_iter() + .filter(|ip| *ip != peer_ip && self.router().is_valid_peer_ip(ip)) + .take(u8::MAX as usize) + .collect(); // Send a `PeerResponse` message to the peer. self.send(peer_ip, Message::PeerResponse(PeerResponse { peers })); true From 00b1da8f7cdf84ca441a74a0adf2d8d9c886c77a Mon Sep 17 00:00:00 2001 From: Howard Wu <9260812+howardwu@users.noreply.github.com> Date: Tue, 20 Feb 2024 15:06:00 -0800 Subject: [PATCH 3/3] rustfmt --- node/router/src/inbound.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/node/router/src/inbound.rs b/node/router/src/inbound.rs index 14c2bd5078..1b0cf0da22 100644 --- a/node/router/src/inbound.rs +++ b/node/router/src/inbound.rs @@ -265,9 +265,15 @@ pub trait Inbound: Reading + Outbound { // Filter out invalid addresses. let peers = match self.router().is_dev() { // In development mode, relax the validity requirements to make operating devnets more flexible. - true => peers.into_iter().filter(|ip| *ip != peer_ip && !is_bogon_ip(ip.ip())).take(u8::MAX as usize).collect(), + true => { + peers.into_iter().filter(|ip| *ip != peer_ip && !is_bogon_ip(ip.ip())).take(u8::MAX as usize).collect() + } // In production mode, ensure the peer IPs are valid. - false => peers.into_iter().filter(|ip| *ip != peer_ip && self.router().is_valid_peer_ip(ip)).take(u8::MAX as usize).collect(), + false => peers + .into_iter() + .filter(|ip| *ip != peer_ip && self.router().is_valid_peer_ip(ip)) + .take(u8::MAX as usize) + .collect(), }; // Send a `PeerResponse` message to the peer. self.send(peer_ip, Message::PeerResponse(PeerResponse { peers }));