diff options
| author | tv <tv@krebsco.de> | 2026-10-31 04:48:00 +0100 |
|---|---|---|
| committer | tv <tv@krebsco.de> | 2026-10-31 04:48:00 +0100 |
| commit | 6e0a3fc86fcd3df3d0b26469f132602c7dce9c24 (patch) | |
| tree | c335376b8ce31fe4431ca8b24e35bda827079316 /src/swarm/peer | |
| parent | 89f41e04976a076e40183956db718d558998c0dc (diff) | |
unify request_sync logic
Diffstat (limited to 'src/swarm/peer')
| -rw-r--r-- | src/swarm/peer/epoch.rs | 5 | ||||
| -rw-r--r-- | src/swarm/peer/handshake.rs | 5 | ||||
| -rw-r--r-- | src/swarm/peer/keepalive.rs | 5 | ||||
| -rw-r--r-- | src/swarm/peer/worker.rs | 5 |
4 files changed, 4 insertions, 16 deletions
diff --git a/src/swarm/peer/epoch.rs b/src/swarm/peer/epoch.rs index 56711b1..d97db0f 100644 --- a/src/swarm/peer/epoch.rs +++ b/src/swarm/peer/epoch.rs @@ -6,7 +6,6 @@ use tracing::{debug, info, warn}; use crate::document::replica::{Epoch, EpochRelation}; use crate::state::AppState; -use crate::swarm::sync::SyncEvent; use crate::transport; /// Records the epoch a peer advertised and compares it with ours. Returns true when the @@ -66,9 +65,7 @@ pub(super) async fn observe_peer_epoch( EpochRelation::Same => { if previous.is_some() { info!(peer = %peer, epoch = %remote, "Peer is on our epoch again; resuming sync"); - let _ = state - .sync_events - .send(SyncEvent::PeerNeedsSync(peer.to_owned())); + state.request_sync(peer); } } // Expected after a remake: either side switches or catches up. diff --git a/src/swarm/peer/handshake.rs b/src/swarm/peer/handshake.rs index a3290fa..225a7c9 100644 --- a/src/swarm/peer/handshake.rs +++ b/src/swarm/peer/handshake.rs @@ -10,7 +10,6 @@ use tokio::time::Instant; use tracing::{debug, info, instrument, trace, warn}; use crate::state::{AppState, HelloState, PeerState, Standing}; -use crate::swarm::sync::SyncEvent; use crate::swarm::topology; use crate::transport::{self, ParsedMessage}; @@ -347,9 +346,7 @@ pub(crate) async fn apply_neighbour_change(state: &AppState, change: topology::N } // Skipped there unless the handshake is complete; otherwise its reply restarts // sync anyway. - let _ = state - .sync_events - .send(SyncEvent::PeerNeedsSync(peer.clone())); + state.request_sync(peer); } for peer in &change.removed { if let Some(peer_state) = state.get_peer_state(peer).await { diff --git a/src/swarm/peer/keepalive.rs b/src/swarm/peer/keepalive.rs index 0e80980..40b8ed3 100644 --- a/src/swarm/peer/keepalive.rs +++ b/src/swarm/peer/keepalive.rs @@ -17,7 +17,6 @@ use tracing::{debug, info, warn}; use super::handshake::ensure_handshake; use crate::state::{AppState, PeerState}; -use crate::swarm::sync::SyncEvent; use crate::swarm::topology; use crate::transport::{self, ParsedMessage}; @@ -214,9 +213,7 @@ pub(super) async fn note_status(state: &AppState, peer: &str, remote: &transport if became_ready { // We may have left the opening to it while it wasn't ready, and nothing else // would make us look again. - let _ = state - .sync_events - .send(SyncEvent::PeerNeedsSync(peer.to_owned())); + state.request_sync(peer); } } crate::swarm::source::reported(state, peer, remote.ready, Some(remote.syncs_with_you)); diff --git a/src/swarm/peer/worker.rs b/src/swarm/peer/worker.rs index f3d0e84..87d2b3c 100644 --- a/src/swarm/peer/worker.rs +++ b/src/swarm/peer/worker.rs @@ -13,7 +13,6 @@ use super::handshake::retry_hello_if_due; use super::keepalive::{send_ping, send_status}; use crate::locks::MutexExt; use crate::state::{AppState, Keepalive}; -use crate::swarm::sync::SyncEvent; use crate::swarm::topology; const PEER_TICK: Duration = Duration::from_millis(500); @@ -69,9 +68,7 @@ pub(crate) async fn run_peer_worker(state: AppState) { if let Some(changes) = unanswered { debug!(peer = %peer, changes, "No answer to our sync message; sending again"); crate::swarm::source::reply_timed_out(&state, peer); - let _ = state - .sync_events - .send(SyncEvent::PeerNeedsSync(peer.clone())); + state.request_sync(peer); } if became_dormant { |
