diff options
Diffstat (limited to 'ext')
-rw-r--r-- | ext/websocket/lib.rs | 18 |
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 { |