aboutsummaryrefslogtreecommitdiffstats
path: root/src/state/peer.rs
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2026-10-31 05:45:57 +0100
committertv <tv@krebsco.de>2026-10-31 05:45:57 +0100
commit964f78a097a76b809954ddd4c1d5c7055d5a5772 (patch)
tree44000aaa4760dafb25a809d00118c59261f23f36 /src/state/peer.rs
parentf72c751c837a41b807fe09cebe79e78a31309def (diff)
centralize call to topology_change
Diffstat (limited to 'src/state/peer.rs')
-rw-r--r--src/state/peer.rs13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/state/peer.rs b/src/state/peer.rs
index 95a9dc3..99f912b 100644
--- a/src/state/peer.rs
+++ b/src/state/peer.rs
@@ -288,6 +288,19 @@ impl PeerState {
self.unreachable_since.is_some()
}
+ /// What choosing neighbours reads of this peer (`swarm::topology::refresh`): whether
+ /// it is unreachable, whether it was ever heard from, whether it is a member, and
+ /// whether it syncs with us. A change to any may change the neighbours
+ /// (`swarm::topology::change_peer`).
+ pub(crate) fn neighbour_inputs(&self) -> impl PartialEq + use<> {
+ (
+ self.is_unreachable(),
+ self.last_seen.is_some(),
+ matches!(self.standing, Standing::Member { .. }),
+ self.syncs_with_us,
+ )
+ }
+
/// The wait before the next HELLO: a probe's if unreachable.
pub(crate) fn next_hello_wait(&mut self) -> Duration {
if self.is_unreachable() {