From 59884919a6016d384fa5461b3e299d1dbd521b62 Mon Sep 17 00:00:00 2001 From: szymon Date: Sun, 16 Aug 2026 16:16:43 +0200 Subject: [PATCH] fix: dont busy wait when server is not available --- src/bin/client.rs | 6 +++++- src/network/client.rs | 11 +++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/bin/client.rs b/src/bin/client.rs index 59d0e27..8e7604d 100644 --- a/src/bin/client.rs +++ b/src/bin/client.rs @@ -6,7 +6,11 @@ use checkers::network::client::Client; async fn main() -> Result<(), Box> { env_logger::init(); - let mut client: Client = Client::new().await; + let Some(mut client) = Client::new().await else { + println!("Not worky, ending"); + return Ok(()); + }; + client.update(); println!("=== Write to stding to send text messages ==="); diff --git a/src/network/client.rs b/src/network/client.rs index 3e8238b..f33d1f8 100644 --- a/src/network/client.rs +++ b/src/network/client.rs @@ -24,7 +24,7 @@ pub struct Client { } impl Client { - pub async fn new() -> Client { + pub async fn new() -> Option { let settings = ClientSettings { server_url: SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 6767), name: "Szymon".into(), @@ -38,17 +38,20 @@ impl Client { let conn_sender_outgoing = conn.get_sender(); - conn.connect_to_server(settings.server_url).await; + if !conn.connect_to_server(settings.server_url).await { + error!("Could not connect with the server: {}", settings.server_url); + return None; + } tokio::spawn(async move { conn.start_listening().await; }); - Client { + Some(Client { conn_reciever_incoming: Some(conn_reciever), conn_sender_outgoing, settings, - } + }) } pub fn update(&mut self) {