Преглед изворни кода

net/seed: Count failed seeds and log error if all queries failed.

parazyd пре 2 година
родитељ
комит
d7303b9784
1 измењених фајлова са 8 додато и 0 уклоњено
  1. 8 0
      src/net/session/seedsync_session.rs

+ 8 - 0
src/net/session/seedsync_session.rs

@@ -85,6 +85,9 @@ impl SeedSyncSession {
         // Gather tasks so we can execute concurrently
         let executor = self.p2p().executor();
         let mut tasks = Vec::with_capacity(settings.seeds.len());
+
+        let mut failed = 0;
+
         for (i, seed) in settings.seeds.iter().enumerate() {
             let ex_ = executor.clone();
             let self_ = self.clone();
@@ -95,6 +98,7 @@ impl SeedSyncSession {
                         target: "net::session::seedsync_session",
                         "[P2P] Seed #{} connection failed: {}", i, e,
                     );
+                    failed += 1;
                 }
             });
         }
@@ -102,6 +106,10 @@ impl SeedSyncSession {
         // Poll concurrently
         join_all(tasks).await;
 
+        if failed == settings.seeds.len() {
+            error!(target: "net::session::seedsync_session", "[P2P] Failed to connect to any seed");
+        }
+
         // Seed process complete
         if self.p2p().hosts().is_empty().await {
             warn!(target: "net::session::seedsync_session", "[P2P] Hosts pool empty after seeding");