From 2485af11cf44fee46ff9ef390d1acefef2cb838b Mon Sep 17 00:00:00 2001 From: Sachymetsu Date: Tue, 13 Jan 2026 10:59:59 +0100 Subject: [PATCH] Improve read loop to handle closing better --- src/net.rs | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/net.rs b/src/net.rs index 3d9ec74..dad553f 100644 --- a/src/net.rs +++ b/src/net.rs @@ -161,17 +161,20 @@ async fn read_loop<'device>(mut reader: TcpReader<'device>) { let mut buf = vec![0u8; 2048]; loop { - if let Ok(read) = reader.read(&mut buf).await - && let Ok(req) = striker_proto::receive_request(&mut buf[..read]) - { - match RpcServer::handle_request(req) - .await - .zip(UpdateConnection::can_update()) - { - Some((resp, resp_tx)) => { + match reader.read(&mut buf).await { + Ok(0) | Err(_) => break, + Ok(read) => { + if let Ok(req) = striker_proto::receive_request(&mut buf[..read]) + .inspect_err(|e| error!("Proto Error: {}", e)) + { + let Some((resp, resp_tx)) = RpcServer::handle_request(req) + .await + .zip(UpdateConnection::can_update()) + else { + break; + }; resp_tx.try_send(resp).ok(); } - None => break, } } } -- 2.51.2