From e13fb05dbb543059c0e396433e4d55738abdf58b Mon Sep 17 00:00:00 2001 From: ghe0 Date: Thu, 22 Aug 2024 18:23:42 +0300 Subject: [PATCH] fixed small errors in logic small errors that were causing everything to crash --- src/datastore.rs | 6 +++--- src/main.rs | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/datastore.rs b/src/datastore.rs index 9720577..8fe6df0 100644 --- a/src/datastore.rs +++ b/src/datastore.rs @@ -174,7 +174,7 @@ impl Store { }; if let Some(mut old_node_info) = self.update_node(node.ip, node_info.clone()).await { if !node_info.public { - old_node_info.public = false; + old_node_info.public = node_info.public; } match old_node_info.ne(&node_info) { true => { @@ -191,8 +191,8 @@ impl Store { /// returns old pubkey if node got updated async fn update_node(&self, ip: String, info: NodeInfo) -> Option { if let Some(old_node) = self.nodes.get(&ip) { - if old_node.updated_at > info.updated_at { - return None; + if old_node.updated_at >= info.updated_at { + return Some(info); } } self.nodes.insert(ip, info.clone()) diff --git a/src/main.rs b/src/main.rs index df4fe58..71b1440 100644 --- a/src/main.rs +++ b/src/main.rs @@ -13,14 +13,15 @@ use tokio::time::{sleep, Duration}; async fn cycle_keys(ds: Arc, tx: Sender) { loop { - let _ = tx.send(ds.reset_localhost_keys().await); sleep(Duration::from_secs(60)).await; + let _ = tx.send(ds.reset_localhost_keys().await); } } #[tokio::main] async fn main() { let ds: Arc = Arc::new(Store::init()); + ds.reset_localhost_keys().await; let (tx, mut _rx) = broadcast::channel(500); let mut long_term_tasks = JoinSet::new();