From 1e721cac0e23a02a03da843f979084a15a525110 Mon Sep 17 00:00:00 2001 From: Kolby Moroz Liebl <31669092+KolbyML@users.noreply.github.com> Date: Sat, 25 Nov 2023 15:55:57 -0700 Subject: [PATCH] fix: filter out disconnected nodes on Node/(Content Enr) response --- portalnet/src/overlay_service.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/portalnet/src/overlay_service.rs b/portalnet/src/overlay_service.rs index 4045eb298..341943c59 100644 --- a/portalnet/src/overlay_service.rs +++ b/portalnet/src/overlay_service.rs @@ -2360,11 +2360,15 @@ where } } - /// Returns a vector of all the ENRs of nodes currently contained in the routing table. + /// Returns a vector of all the ENRs of nodes currently contained in the routing table which are connected. fn table_entries_enr(&self) -> Vec { self.kbuckets .write() .iter() + .filter(|entry| { + // Filter out disconnected nodes. + entry.status.is_connected() + }) .map(|entry| entry.node.value.enr()) .collect() } @@ -2387,6 +2391,10 @@ where for node in kbuckets .nodes_by_distances(log2_distances, FIND_NODES_MAX_NODES) .into_iter() + .filter(|entry| { + // Filter out disconnected nodes. + entry.status.is_connected() + }) .map(|entry| entry.node.value.clone()) { nodes_to_send.push(SszEnr::new(node.enr()));