From a5eb9cc5bface35540a4fb007dcddde8d45e0750 Mon Sep 17 00:00:00 2001 From: draoi Date: Wed, 7 Aug 2024 10:37:58 +0200 Subject: [PATCH] seedsync_session: fix deceptive logic on failed() We should return an error when ALL seed slots have failed, not ANY. Otherwise this would print a deceptive error message ("Network reseed failed") if we have e.g. 2 seed slots and one seeds successfully and the other fails. --- src/net/session/seedsync_session.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/net/session/seedsync_session.rs b/src/net/session/seedsync_session.rs index 07c97b68f..d376811f6 100644 --- a/src/net/session/seedsync_session.rs +++ b/src/net/session/seedsync_session.rs @@ -127,9 +127,10 @@ impl SeedSyncSession { debug!(target: "net::seedsync_session", "Seed sync session stopped!"); } + /// Returns true if every seed attempt per slot has failed. pub(crate) async fn failed(&self) -> bool { let slots = &*self.slots.lock().await; - slots.iter().any(|s| s.failed()) + slots.iter().all(|s| s.failed()) } }