From e1fb174f86adce421ee6bbce70e5dc1558c10868 Mon Sep 17 00:00:00 2001 From: Divy Srivastava Date: Sat, 9 Mar 2024 09:36:17 +0530 Subject: fix(ext/websocket): do not continue reading if socket rid closes (#21849) Fixes https://github.com/denoland/deno/issues/21379 --- ext/websocket/lib.rs | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'ext/websocket/lib.rs') diff --git a/ext/websocket/lib.rs b/ext/websocket/lib.rs index e6f382c34..e4df9d3d3 100644 --- a/ext/websocket/lib.rs +++ b/ext/websocket/lib.rs @@ -703,9 +703,11 @@ pub async fn op_ws_close( pub fn op_ws_get_buffer( state: &mut OpState, #[smi] rid: ResourceId, -) -> Result { - let resource = state.resource_table.get::(rid)?; - Ok(resource.buffer.take().unwrap().into()) +) -> Option { + let Ok(resource) = state.resource_table.get::(rid) else { + return None; + }; + resource.buffer.take().map(ToJsBuffer::from) } #[op2] @@ -713,9 +715,11 @@ pub fn op_ws_get_buffer( pub fn op_ws_get_buffer_as_string( state: &mut OpState, #[smi] rid: ResourceId, -) -> Result { - let resource = state.resource_table.get::(rid)?; - Ok(resource.string.take().unwrap()) +) -> Option { + let Ok(resource) = state.resource_table.get::(rid) else { + return None; + }; + resource.string.take() } #[op2] -- cgit v1.2.3