From 197cee7f4da41a8f5181e314a90a26ae93e23a63 Mon Sep 17 00:00:00 2001 From: tv Date: Sat, 31 Oct 2026 05:45:57 +0100 Subject: centralize call to topology_change --- src/swarm/peer/handshake.rs | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) (limited to 'src/swarm/peer/handshake.rs') diff --git a/src/swarm/peer/handshake.rs b/src/swarm/peer/handshake.rs index 225a7c9..13a1264 100644 --- a/src/swarm/peer/handshake.rs +++ b/src/swarm/peer/handshake.rs @@ -147,11 +147,7 @@ async fn transmit_hello(state: &AppState, peer: &str) -> Result<()> { let mut peer_state = peer_state_mutex.lock().await; if peer_state.hello_state == HelloState::Sending { - let was_unreachable = peer_state.unreachable_since.is_some(); - peer_state.hello_sent(Instant::now()); - if !was_unreachable && peer_state.unreachable_since.is_some() { - state.topology_changed.notify_one(); - } + topology::change_peer(state, &mut peer_state, |p| p.hello_sent(Instant::now())); let wait = peer_state.next_hello_wait(); peer_state.hello_state = HelloState::AwaitingReply { next_attempt: Instant::now() + wait, @@ -402,11 +398,12 @@ pub(super) async fn establish_peer( } if !matches!(peer_state.standing, Standing::Member { .. }) { - peer_state.standing = Standing::Member { - swarm_id: swarm_id.clone(), - }; // A member our list may lack yet: a neighbour then (`topology::refresh`). - state.topology_changed.notify_one(); + topology::change_peer(state, &mut peer_state, |p| { + p.standing = Standing::Member { + swarm_id: swarm_id.clone(), + } + }); } // Stop our retries and sync from a clean slate. A new handshake from the peer always -- cgit v1.3.1