From 719c19dc647f3a5c348feff867eb2e021dc4411b Mon Sep 17 00:00:00 2001 From: oxalica Date: Tue, 1 Oct 2024 07:09:53 -0400 Subject: [PATCH] fix(blahd/event): do not parse close frame as message --- blahd/src/event.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/blahd/src/event.rs b/blahd/src/event.rs index 2ae9a34..ed0ac5a 100644 --- a/blahd/src/event.rs +++ b/blahd/src/event.rs @@ -130,7 +130,11 @@ impl Stream for UserEventReceiver { pub async fn handle_ws(st: Arc, ws: &mut WebSocket) -> Result { let config = &st.config.ws; let (ws_tx, ws_rx) = ws.split(); - let mut ws_rx = ws_rx.map(|ret| ret.and_then(|msg| msg.into_text()).map_err(|_| StreamEnded)); + let mut ws_rx = ws_rx.map(|ret| match ret { + Ok(Message::Text(data)) => Ok(data), + Ok(Message::Close(_)) | Err(_) => Err(StreamEnded.into()), + _ => bail!("unexpected message type"), + }); let mut ws_tx = WsSenderWrapper { inner: ws_tx, config,