From e64ddafeb67889fde8fe10ac24cf09efca97d837 Mon Sep 17 00:00:00 2001 From: Kyle Johnsen Date: Sun, 20 Mar 2022 15:36:37 -0400 Subject: [PATCH] removed some potential failure paths, server should never crash --- src/main.rs | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/main.rs b/src/main.rs index 697a69f..b4932b7 100644 --- a/src/main.rs +++ b/src/main.rs @@ -111,7 +111,10 @@ async fn process_client(socket: TcpStream, udp_socket: Rc>, c println!("started tcp"); - socket.set_nodelay(true).unwrap(); + match socket.set_nodelay(true) { + Ok(_)=>{}, + Err(_)=>{eprintln!("could not set no delay"); return;} + } //socket.set_read_timeout(Some(time::Duration::new(config.tcp_timeout,0))).unwrap(); //socket.set_write_timeout(Some(time::Duration::new(config.tcp_timeout,0))).unwrap(); @@ -130,7 +133,7 @@ async fn process_client(socket: TcpStream, udp_socket: Rc>, c match socket.peer_addr() { Ok(p)=>ip=p.ip(), - Err(e)=>{return;} + Err(_)=>{return;} } let client = Rc::new(RefCell::new(Client{ @@ -443,7 +446,14 @@ async fn process_udp(socket: Rc>,clients: Rc{}, + Err(_)=>{eprintln!("Could not convert group name"); return;} + } + + let group_name = res.unwrap(); let clients = clients.borrow(); @@ -759,7 +769,7 @@ fn client_leave_room(client: Rc>, send_to_client: bool, rooms: R let mut destroy_room = false; { - let mut rooms_ref = rooms.borrow_mut(); + let rooms_ref = rooms.borrow_mut(); let mut room_ref = rooms_ref.get(&roomname).unwrap().borrow_mut(); for (_k,v) in room_ref.clients.iter() { @@ -948,13 +958,14 @@ async fn _read_string(stream: &mut TcpStream,duration: u64) -> Result Result> { let size = read_u8(stream,duration).await?; let mut string_bytes = vec![0;size as usize]; read_timeout(stream, &mut string_bytes, duration).await?; - return Ok(String::from_utf8(string_bytes).unwrap()); + return Ok(String::from_utf8(string_bytes)?); } async fn read_vec(stream: &mut TcpStream,duration: u64) -> Result,Box> {