From bf322988842802850c2d80944cb28da6efd79847 Mon Sep 17 00:00:00 2001 From: Artlef Date: Sun, 1 Mar 2020 19:30:26 +0100 Subject: [PATCH] Real user disconnection management --- src/bin/server.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/bin/server.rs b/src/bin/server.rs index dbef881..135d5ea 100644 --- a/src/bin/server.rs +++ b/src/bin/server.rs @@ -54,7 +54,7 @@ fn handle_player(mut stream: UnixStream, server: Server) { Ok((player, player_turn)) => main_loop(&mut stream, &server, player, player_turn), Err(e) => println!("User id {} could not be initialized: {}", server.id, e), }; - player_disconnected(); + player_disconnected(&server); } fn initialize_client( @@ -197,9 +197,7 @@ fn receive_user_role( if available_roles_after_choice.contains(&chosen_role) { println!("OK"); clichess::write_to_stream(stream, String::from("OK")).unwrap(); - - let get_confirmation = - clichess::read_line_from_stream(stream).expect("Player closed connection."); + clichess::read_line_from_stream(stream).expect("Player closed connection."); break; } else { println!("KO"); @@ -227,6 +225,8 @@ fn compute_available_roles_to_str(server: &Server) -> String { available_roles_str.join(",") } -fn player_disconnected() { +fn player_disconnected(server: &Server) { + let mut players = server.players.lock().unwrap(); + players.remove(&server.id); println!("Player disconnected."); }