aboutsummaryrefslogtreecommitdiffstats
path: root/src/swarm/peer/worker.rs
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2026-11-05 04:31:04 +0100
committertv <tv@krebsco.de>2026-11-05 04:31:04 +0100
commit39980623f81e9e75f142f55a35794bf7a53aa38b (patch)
treee195198f2a86652ff1741047e24f58300795c06b /src/swarm/peer/worker.rs
parenta4853f232afc7903c9eff7d08663b6b0bbb9bf24 (diff)
suspect paths
Diffstat (limited to 'src/swarm/peer/worker.rs')
-rw-r--r--src/swarm/peer/worker.rs5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/swarm/peer/worker.rs b/src/swarm/peer/worker.rs
index 399741c..b5c533a 100644
--- a/src/swarm/peer/worker.rs
+++ b/src/swarm/peer/worker.rs
@@ -111,6 +111,11 @@ pub(crate) async fn run_peer_worker(state: AppState) {
(became_dormant, keepalive, unanswered, ask_again)
};
+ // Unanswered: the path in use may drop what it takes. Its others first, and
+ // all of them pinged now (`Transport::suspect`).
+ if unanswered.is_some() || ask_again {
+ state.transport.suspect(peer);
+ }
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);