aboutsummaryrefslogtreecommitdiffstats
path: root/src/swarm/peer/worker.rs
diff options
context:
space:
mode:
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);