aboutsummaryrefslogtreecommitdiffstats
path: root/src/swarm/peer/keepalive.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/swarm/peer/keepalive.rs')
-rw-r--r--src/swarm/peer/keepalive.rs6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/swarm/peer/keepalive.rs b/src/swarm/peer/keepalive.rs
index 0f34eb8..aa34e70 100644
--- a/src/swarm/peer/keepalive.rs
+++ b/src/swarm/peer/keepalive.rs
@@ -84,7 +84,10 @@ pub(super) async fn note_alive(state: &AppState, peer: &str, message: &ParsedMes
return;
};
let ping = matches!(message, ParsedMessage::Ping(_));
+ let mut hello_now = false;
let (reactivated, _) = heard_from(state, peer, &peer_state, now, |peer_state| {
+ // Up and reaching us, while we wait for its HELLO_REPLY.
+ hello_now = peer_state.hello_again_now(now);
if ping {
// Its keepalive (or a path probe): the next is ours.
peer_state.keepalive_received_at = Some(now);
@@ -94,6 +97,9 @@ pub(super) async fn note_alive(state: &AppState, peer: &str, message: &ParsedMes
}
})
.await;
+ if hello_now {
+ state.peers_due.now();
+ }
if reactivated {
ensure_handshake(state, peer).await;
}