From 3986c0ec92184dd85331646893d7191a0173e0f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20Frosteg=C3=A5rd?= Date: Fri, 5 Nov 2021 11:27:51 +0100 Subject: [PATCH] ws: don't panic when ConnectionWriter can't recv from closed channel --- aquatic_ws/src/lib/network.rs | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/aquatic_ws/src/lib/network.rs b/aquatic_ws/src/lib/network.rs index f4e71ca..55ad023 100644 --- a/aquatic_ws/src/lib/network.rs +++ b/aquatic_ws/src/lib/network.rs @@ -378,11 +378,9 @@ struct ConnectionWriter { impl ConnectionWriter { async fn run_out_message_loop(&mut self) -> anyhow::Result<()> { loop { - let (meta, out_message) = self - .out_message_receiver - .recv() - .await - .expect("wait_for_out_message: can't receive out_message, sender is closed"); + let (meta, out_message) = self.out_message_receiver.recv().await.ok_or_else(|| { + anyhow::anyhow!("ConnectionWriter couldn't receive message, sender is closed") + })?; if meta.naive_peer_addr != self.peer_addr { return Err(anyhow::anyhow!("peer addresses didn't match"));