From baf8ec8862d7c3b03ef0f50e92c5508271bcd1d3 Mon Sep 17 00:00:00 2001 From: core Date: Sat, 15 Apr 2023 18:03:06 -0400 Subject: [PATCH] satisfy terra and alador --- server/src/main.rs | 11 +++++++++-- server/src/timer.rs | 12 +++++++++++- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/server/src/main.rs b/server/src/main.rs index 0a968ac09e175f433a1389d1a809514e3eef212c..3756d4eb3efcdaaf51615b59aa7ec38317e32ef9 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -37,8 +37,15 @@ async fn handle_request(conn: TcpStream, remote_addr: SocketAddr, mgr: ClientMan async fn _handle_request(mut conn: TcpStream, remote_addr: SocketAddr, mgr: ClientManager, physics_data: Arc>) -> Result<(), Box> { let mut peek_buf = [0u8; 9]; - let read = conn.peek(&mut peek_buf).await?; - if read == 9 && peek_buf == *b"GET /ping" { + + loop { + let read = conn.peek(&mut peek_buf).await?; + if read == 9 { + break; + } + } + + if peek_buf == *b"GET /ping" { info!("[{}] incoming http connection", remote_addr); let ping_resp = serde_json::to_string(&ServerPingResponse { version: ServerPingResponseVersion { diff --git a/server/src/timer.rs b/server/src/timer.rs index 9d5ab614f30993254cfd9e2d9c49eea0a0ad43ae..f126baa4fad5aa75a86c1b33adda87ffc60667b4 100644 --- a/server/src/timer.rs +++ b/server/src/timer.rs @@ -76,7 +76,12 @@ pub async fn timer_main(mgr: ClientManager, physics_data: Arc { match client_thread.tx.send(ClientHandlerMessage::PlayersUpdate {players: protocol_players.clone()}).await { @@ -97,8 +102,13 @@ pub async fn timer_main(mgr: ClientManager, physics_data: Arc { error!("unable to update a client thread: {}", e); + to_remove.push(addr); } } } + + for pending_removal in to_remove { + mgr_w.remove(pending_removal); + } } }