summaryrefslogtreecommitdiff
path: root/ext/websocket
diff options
context:
space:
mode:
Diffstat (limited to 'ext/websocket')
-rw-r--r--ext/websocket/lib.rs18
1 files changed, 12 insertions, 6 deletions
diff --git a/ext/websocket/lib.rs b/ext/websocket/lib.rs
index ba626a45a..f3d44cac7 100644
--- a/ext/websocket/lib.rs
+++ b/ext/websocket/lib.rs
@@ -239,6 +239,16 @@ where
);
}
+ let cancel_resource = if let Some(cancel_rid) = args.cancel_handle {
+ let r = state
+ .borrow_mut()
+ .resource_table
+ .get::<WsCancelResource>(cancel_rid)?;
+ Some(r)
+ } else {
+ None
+ };
+
let unsafely_ignore_certificate_errors = state
.borrow()
.try_borrow::<UnsafelyIgnoreCertificateErrors>()
@@ -283,13 +293,9 @@ where
let client = client_async(request, socket);
let (stream, response): (WsStream, Response) =
- if let Some(cancel_rid) = args.cancel_handle {
- let r = state
- .borrow_mut()
- .resource_table
- .get::<WsCancelResource>(cancel_rid)?;
+ if let Some(cancel_resource) = cancel_resource {
client
- .or_cancel(r.0.to_owned())
+ .or_cancel(cancel_resource.0.to_owned())
.await
.map_err(|_| DomExceptionAbortError::new("connection was aborted"))?
} else {