diff options
Diffstat (limited to 'server/src/main.rs')
-rw-r--r-- | server/src/main.rs | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/server/src/main.rs b/server/src/main.rs index bf69f295..68927eaa 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -151,13 +151,17 @@ async fn run() -> anyhow::Result<()> { } }; debug!("<- {id:?} {packet:?}"); - if let Err(e) = state.write().await.packet_in(id, packet).await { - warn!("client error: {e}"); - let _ = error_tx - .send(PacketC::Error { + let packet_out = match state.write().await.packet_in(id, packet).await { + Ok(packets) => packets, + Err(e) => { + warn!("client error: {e}"); + vec![PacketC::Error { message: format!("{e}"), - }) - .await; + }] + } + }; + for packet in packet_out { + let _ = error_tx.send(packet).await; } } Message::Close(_) => break, |