From a5ae68700008911b183d9c2e3509821d0e88e762 Mon Sep 17 00:00:00 2001
From: librelois <c@elo.tf>
Date: Sun, 2 May 2021 18:25:02 +0200
Subject: [PATCH] [fix] start: infinite loop at starting if gva is disabled

---
 rust-libs/duniter-server/src/legacy/dunp.rs     | 17 +++++++++++++++++
 .../duniter-server/src/legacy/txs_mempool.rs    | 17 -----------------
 2 files changed, 17 insertions(+), 17 deletions(-)

diff --git a/rust-libs/duniter-server/src/legacy/dunp.rs b/rust-libs/duniter-server/src/legacy/dunp.rs
index d153e53b8..99f54a6fb 100644
--- a/rust-libs/duniter-server/src/legacy/dunp.rs
+++ b/rust-libs/duniter-server/src/legacy/dunp.rs
@@ -16,6 +16,23 @@
 use crate::*;
 
 impl DuniterServer {
+    pub fn get_self_endpoints(&self) -> anyhow::Result<Vec<Endpoint>> {
+        // Do not get rust endpoints on js tests or when gva is disabled
+        if std::env::var_os("DUNITER_JS_TESTS") != Some("yes".into()) && self.conf.gva.is_some() {
+            let (sender, recv) = flume::bounded(1);
+            loop {
+                self.global_sender
+                    .send(GlobalBackGroundTaskMsg::GetSelfEndpoints(sender.clone()))?;
+                if let Some(self_endpoints) = recv.recv()? {
+                    break Ok(self_endpoints);
+                } else {
+                    std::thread::sleep(std::time::Duration::from_millis(100));
+                }
+            }
+        } else {
+            Ok(vec![])
+        }
+    }
     pub fn receive_new_heads(
         &self,
         heads: Vec<(
diff --git a/rust-libs/duniter-server/src/legacy/txs_mempool.rs b/rust-libs/duniter-server/src/legacy/txs_mempool.rs
index 3a484b9a2..7dc898088 100644
--- a/rust-libs/duniter-server/src/legacy/txs_mempool.rs
+++ b/rust-libs/duniter-server/src/legacy/txs_mempool.rs
@@ -40,23 +40,6 @@ impl DuniterServer {
             .execute(move |dbs| txs_mempool.add_pending_tx_force(&dbs.txs_mp_db, &tx))
             .expect("dbs pool disconnected")
     }
-    pub fn get_self_endpoints(&self) -> anyhow::Result<Vec<Endpoint>> {
-        // Do not get rust endpoints on js tests
-        if std::env::var_os("DUNITER_JS_TESTS") != Some("yes".into()) {
-            let (sender, recv) = flume::bounded(1);
-            loop {
-                self.global_sender
-                    .send(GlobalBackGroundTaskMsg::GetSelfEndpoints(sender.clone()))?;
-                if let Some(self_endpoints) = recv.recv()? {
-                    break Ok(self_endpoints);
-                } else {
-                    std::thread::sleep(std::time::Duration::from_millis(100));
-                }
-            }
-        } else {
-            Ok(vec![])
-        }
-    }
     pub fn get_mempool_txs_free_rooms(&self) -> KvResult<usize> {
         let txs_mempool = self.txs_mempool;
         self.dbs_pool
-- 
GitLab