From 1358216c62c476ffbce165008dcebafb4f11e9e3 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Thu, 11 Jul 2024 14:08:15 +0200 Subject: fix inproper client lag handling --- server/src/main.rs | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) (limited to 'server/src/main.rs') diff --git a/server/src/main.rs b/server/src/main.rs index 25fdb9c4..f81ee38c 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -128,18 +128,22 @@ async fn run() -> anyhow::Result<()> { } } loop { - let packet = match tokio::select!( - p = rx.recv() => p.ok(), - p = error_rx.recv() => p, - ) { - Some(p) => p, - None => { - rx = rx.resubscribe(); - PacketC::ServerMessage { - text: "Lagging behind. Some clientbound packets were dropped." - .to_string(), + let Some(packet) = tokio::select!( + p = rx.recv() => Some(match p { + Ok(e) => e, + Err(e) => { + rx = rx.resubscribe(); + warn!("client was lagging. resubscribed: {e}"); + PacketC::ServerMessage { + text: "Lagging behind. Some clientbound packets were dropped." + .to_string(), + } } - } + }), + p = error_rx.recv() => p + ) else { + info!("client outbound sender dropped. closing connection"); + break; }; if let Err(e) = write .send(tokio_tungstenite::tungstenite::Message::Text( -- cgit v1.2.3-70-g09d2