summaryrefslogtreecommitdiffstats
path: root/src/swarm/peer.rs
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2026-10-25 20:40:00 +0100
committertv <tv@krebsco.de>2026-10-25 20:40:00 +0100
commit31e6e6a2801a19515daa7adda09b0d24d420f18e (patch)
tree7e05dff35c6c049d297810893976843ba6f4a809 /src/swarm/peer.rs
parent944bd3a9da9c14153247b483ba2cfe1457fc84d2 (diff)
require catch-up source to make progress
Diffstat (limited to 'src/swarm/peer.rs')
-rw-r--r--src/swarm/peer.rs3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/swarm/peer.rs b/src/swarm/peer.rs
index 8c1e7eb..238194c 100644
--- a/src/swarm/peer.rs
+++ b/src/swarm/peer.rs
@@ -468,6 +468,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()));
@@ -500,6 +501,7 @@ pub(crate) async fn run_peer_worker(state: AppState) {
crate::swarm::members::ensure_registered(&state).await;
crate::swarm::stability::tick(&state).await;
crate::swarm::stats::measure_saved_size(&state);
+ crate::swarm::source::warn_if_stalled(&state);
crate::swarm::state_file::update(&state, false).await;
{
let known = state.peer_states.read().await;
@@ -847,6 +849,7 @@ pub(crate) async fn handle_message(
debug!(peer = %peer, epoch = %envelope.epoch, "Dropping sync message from another epoch");
return Ok(());
}
+ crate::swarm::source::synced_from(state, &peer);
handle_sync(state, &peer, envelope).await?;
}
transport::ParsedMessage::Ping(remote) => {