diff options
| author | tv <tv@krebsco.de> | 2026-11-03 03:25:00 +0100 |
|---|---|---|
| committer | tv <tv@krebsco.de> | 2026-11-03 03:25:00 +0100 |
| commit | 2b4359f23d20b14bae1896512f678d02b7f3c34c (patch) | |
| tree | b2bad51e96393463c5f1ac428f3a43d2028c2044 /src/swarm/peer/keepalive.rs | |
| parent | 8f0b588831ac06913dd01a3ebd8bb523292d992e (diff) | |
introduce eager links
Diffstat (limited to 'src/swarm/peer/keepalive.rs')
| -rw-r--r-- | src/swarm/peer/keepalive.rs | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/swarm/peer/keepalive.rs b/src/swarm/peer/keepalive.rs index c426f99..37fcba8 100644 --- a/src/swarm/peer/keepalive.rs +++ b/src/swarm/peer/keepalive.rs @@ -176,9 +176,12 @@ pub(crate) async fn local_status(state: &AppState, peer: &str) -> transport::Sta stamp.epoch_seq, ) }; - let syncs_with_you = match state.get_peer_state(peer).await { - Some(peer_state) => peer_state.lock().await.syncs_on(epoch), - None => false, + let (syncs_with_you, eager) = match state.get_peer_state(peer).await { + Some(peer_state) => { + let peer_state = peer_state.lock().await; + (peer_state.syncs_on(epoch), peer_state.eager_from) + } + None => (false, false), }; transport::Status { heads, @@ -188,6 +191,7 @@ pub(crate) async fn local_status(state: &AppState, peer: &str) -> transport::Sta syncs_with_you, leaving: state.is_closing(), announcing: false, + eager, } } @@ -224,6 +228,7 @@ pub(super) async fn note_status(state: &AppState, peer: &str, remote: &transport peer_state.reports_ready = Some(remote.ready); peer_state.reported_heads = remote.heads.heads().map(<[_]>::len); peer_state.last_heads = Some((remote.epoch, remote.heads.clone())); + peer_state.eager_to = remote.eager; drop(peer_state); if left { info!(peer = %peer, "Peer said farewell; dormant until it is heard from again"); |
