aboutsummaryrefslogtreecommitdiff
path: root/server/src
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2024-07-11 14:08:15 +0200
committermetamuffin <metamuffin@disroot.org>2024-07-11 14:08:15 +0200
commit1358216c62c476ffbce165008dcebafb4f11e9e3 (patch)
tree6098185ba4f616a8da9cb8b2a402b340c15890c9 /server/src
parentae29ca99dde89f8b975ce7b3a716411ab2028e50 (diff)
downloadhurrycurry-1358216c62c476ffbce165008dcebafb4f11e9e3.tar
hurrycurry-1358216c62c476ffbce165008dcebafb4f11e9e3.tar.bz2
hurrycurry-1358216c62c476ffbce165008dcebafb4f11e9e3.tar.zst
fix inproper client lag handling
Diffstat (limited to 'server/src')
-rw-r--r--server/src/main.rs26
1 files changed, 15 insertions, 11 deletions
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(