From 8edf4cad626b0fb5dc0eff6b82f6072e057ebb02 Mon Sep 17 00:00:00 2001 From: Bastian Gruber Date: Sat, 29 Apr 2023 19:14:04 +0200 Subject: [PATCH] Typo --- problem_03/src/server.rs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/problem_03/src/server.rs b/problem_03/src/server.rs index 505de18..0a9d008 100644 --- a/problem_03/src/server.rs +++ b/problem_03/src/server.rs @@ -37,6 +37,8 @@ async fn main() -> Result<()> { let db = Users::default(); + let mut valid_name = true; + // Infinite loop to always listen to new connections on this IP/PORT loop { let (stream, address) = listener.accept().await?; @@ -57,13 +59,14 @@ async fn main() -> Result<()> { // we won't process until we find one. match framed.next().await { Some(Ok(username)) => { - if !username.is_empty() && name.chars().all(char::is_alphanumeric) { + if !username.is_empty() && username.chars().all(char::is_alphanumeric) { name = username.clone(); db.0.lock().unwrap().insert(username.clone(), address); let message = compose_message(username.clone(), db.clone()); info!("Adding username: {username} to db"); let _ = framed.send(message).await; } else { + valid_name = false; return; } } @@ -77,6 +80,10 @@ async fn main() -> Result<()> { } } + if !valid_name { + return; + } + let b = BroadcastMessage( name.clone(), format!("* {} has entered the room", name), @@ -123,7 +130,13 @@ async fn main() -> Result<()> { } } }); + + if !valid_name { + break; + } } + + Ok(()) } fn compose_message(name: String, db: Users) -> String {