From 58eb0c9b595fceadc4fc5c039a6b857e8b75b97f Mon Sep 17 00:00:00 2001 From: alterdekim Date: Fri, 23 Aug 2024 04:24:27 +0300 Subject: [PATCH] Changes to be committed: modified: src/server.rs --- src/server.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/server.rs b/src/server.rs index 24aebb7..1e6b363 100644 --- a/src/server.rs +++ b/src/server.rs @@ -1,9 +1,7 @@ use crossbeam_channel::unbounded; use tokio::{net::UdpSocket, sync::Mutex}; use x25519_dalek::{PublicKey, StaticSecret}; -use core::time; use std::io::{Read, Write}; -use std::thread; use base64::prelude::*; use log::{error, info}; use std::sync::Arc; @@ -51,8 +49,11 @@ pub async fn server_mode(server_config: ServerConfiguration) { let addrs_lcl = addresses.clone(); if keepalive_sec > 0 { tokio::spawn(async move { + let mut now = std::time::Instant::now(); + let kps = std::time::Duration::from_secs(keepalive_sec.clone().into()); loop { - thread::sleep(time::Duration::from_secs(keepalive_sec.into())); + if now.elapsed() < kps { continue; } + now = std::time::Instant::now(); let mmp = addrs_lcl.lock().await; mmp.values().for_each(|p| { let _ = send2hnd_cl.send((UDPKeepAlive{}.serialize(), p.addr));