diff options
| author | tv <tv@krebsco.de> | 2026-10-27 02:02:15 +0100 |
|---|---|---|
| committer | tv <tv@krebsco.de> | 2026-10-27 02:02:15 +0100 |
| commit | 1639b17f011379b886cb15db38f997d59a962849 (patch) | |
| tree | 1417ead3872ade72e4d8a1ab4a715f26b0ba6335 /src/swarm/topology.rs | |
| parent | 027a0920b81e7ee3e0f3eb4f0b3cbbb559133252 (diff) | |
add support for several transports
Diffstat (limited to 'src/swarm/topology.rs')
| -rw-r--r-- | src/swarm/topology.rs | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/swarm/topology.rs b/src/swarm/topology.rs index bdfeb53..5150e38 100644 --- a/src/swarm/topology.rs +++ b/src/swarm/topology.rs @@ -144,9 +144,15 @@ pub(crate) async fn refresh(state: &AppState) -> Option<NeighbourChange> { (current, stable) }; let k = state.neighbours_k; + // Those that don't answer, and those on none of our transports. let mut unreachable = BTreeSet::new(); for member in ¤t { - if let Some(peer_state) = state.get_peer_state(member).await + if member == state.local_id() { + continue; + } + if !state.transport.can_reach(member) { + unreachable.insert(member.clone()); + } else if let Some(peer_state) = state.get_peer_state(member).await && peer_state.lock().await.is_unreachable() { unreachable.insert(member.clone()); |
