summaryrefslogtreecommitdiffstats
path: root/src/swarm/state_file.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/swarm/state_file.rs')
-rw-r--r--src/swarm/state_file.rs10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/swarm/state_file.rs b/src/swarm/state_file.rs
index 62a6dbe..8b883fc 100644
--- a/src/swarm/state_file.rs
+++ b/src/swarm/state_file.rs
@@ -129,7 +129,12 @@ pub(crate) async fn update(state: &AppState, now: bool) {
let seeds = {
let replica = state.doc.read().await;
- seeds(&replica.doc, state.local_id(), state.electorate_window)
+ seeds(
+ &replica.doc,
+ state.local_id(),
+ state.electorate_window,
+ state.clock.now_millis(),
+ )
};
let remembered = Remembered { swarm_id, seeds };
@@ -172,8 +177,7 @@ pub(crate) async fn update(state: &AppState, now: bool) {
/// Members to rejoin through: those alive within the electorate window, stable ones
/// first, at most `MAX_SEEDS`, sorted. Changes only when members join, leave or change
/// tier, so the file rarely does.
-fn seeds(doc: &automerge::AutoCommit, me: &str, window: Duration) -> Vec<String> {
- let now = crate::state::unix_millis();
+fn seeds(doc: &automerge::AutoCommit, me: &str, window: Duration, now: u64) -> Vec<String> {
let (mut stable, transient): (Vec<String>, Vec<String>) = members::electorate(doc, now, window)
.into_iter()
.filter(|pk| pk != me)