diff options
author | Aaron O'Mullan <aaron.omullan@gmail.com> | 2021-08-15 13:29:19 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-15 13:29:19 +0200 |
commit | 2ca454b402d48c1808f8233c5adedc11b714c63c (patch) | |
tree | 592f9e877e9b0ae92be80383ab723cc290e4b01e /ext/net | |
parent | 18ff6bb053d600c277613628a256fe5fdd4dda67 (diff) |
refactor(ops): return BadResource errors in ResourceTable calls (#11710)
* refactor(ops): return BadResource errors in ResourceTable calls
Instead of relying on callers to map Options to Results via `.ok_or_else(bad_resource_id)` at over 176 different call sites ...
Diffstat (limited to 'ext/net')
-rw-r--r-- | ext/net/io.rs | 20 | ||||
-rw-r--r-- | ext/net/ops.rs | 10 | ||||
-rw-r--r-- | ext/net/ops_tls.rs | 6 | ||||
-rw-r--r-- | ext/net/ops_unix.rs | 4 |
4 files changed, 12 insertions, 28 deletions
diff --git a/ext/net/io.rs b/ext/net/io.rs index fc10d7e99..f1403679a 100644 --- a/ext/net/io.rs +++ b/ext/net/io.rs @@ -1,9 +1,9 @@ // Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. use crate::ops_tls as tls; +use deno_core::error::not_supported; use deno_core::error::null_opbuf; use deno_core::error::AnyError; -use deno_core::error::{bad_resource_id, not_supported}; use deno_core::op_async; use deno_core::AsyncMutFuture; use deno_core::AsyncRefCell; @@ -169,11 +169,7 @@ async fn op_read_async( buf: Option<ZeroCopyBuf>, ) -> Result<u32, AnyError> { let buf = &mut buf.ok_or_else(null_opbuf)?; - let resource = state - .borrow() - .resource_table - .get_any(rid) - .ok_or_else(bad_resource_id)?; + let resource = state.borrow().resource_table.get_any(rid)?; let nread = if let Some(s) = resource.downcast_rc::<TcpStreamResource>() { s.read(buf).await? } else if let Some(s) = resource.downcast_rc::<TlsStreamResource>() { @@ -192,11 +188,7 @@ async fn op_write_async( buf: Option<ZeroCopyBuf>, ) -> Result<u32, AnyError> { let buf = &buf.ok_or_else(null_opbuf)?; - let resource = state - .borrow() - .resource_table - .get_any(rid) - .ok_or_else(bad_resource_id)?; + let resource = state.borrow().resource_table.get_any(rid)?; let nwritten = if let Some(s) = resource.downcast_rc::<TcpStreamResource>() { s.write(buf).await? } else if let Some(s) = resource.downcast_rc::<TlsStreamResource>() { @@ -214,11 +206,7 @@ async fn op_shutdown( rid: ResourceId, _: (), ) -> Result<(), AnyError> { - let resource = state - .borrow() - .resource_table - .get_any(rid) - .ok_or_else(bad_resource_id)?; + let resource = state.borrow().resource_table.get_any(rid)?; if let Some(s) = resource.downcast_rc::<TcpStreamResource>() { s.shutdown().await?; } else if let Some(s) = resource.downcast_rc::<TlsStreamResource>() { diff --git a/ext/net/ops.rs b/ext/net/ops.rs index a0fc2179e..7f8a97df3 100644 --- a/ext/net/ops.rs +++ b/ext/net/ops.rs @@ -107,7 +107,7 @@ async fn accept_tcp( .borrow() .resource_table .get::<TcpListenerResource>(rid) - .ok_or_else(|| bad_resource("Listener has been closed"))?; + .map_err(|_| bad_resource("Listener has been closed"))?; let listener = RcRef::map(&resource, |r| &r.listener) .try_borrow_mut() .ok_or_else(|| custom_error("Busy", "Another accept task is ongoing"))?; @@ -178,7 +178,7 @@ async fn receive_udp( .borrow_mut() .resource_table .get::<UdpSocketResource>(rid) - .ok_or_else(|| bad_resource("Socket has been closed"))?; + .map_err(|_| bad_resource("Socket has been closed"))?; let socket = RcRef::map(&resource, |r| &r.socket).borrow().await; let cancel_handle = RcRef::map(&resource, |r| &r.cancel); let (size, remote_addr) = socket @@ -246,7 +246,7 @@ where .borrow_mut() .resource_table .get::<UdpSocketResource>(rid) - .ok_or_else(|| bad_resource("Socket has been closed"))?; + .map_err(|_| bad_resource("Socket has been closed"))?; let socket = RcRef::map(&resource, |r| &r.socket).borrow().await; let byte_length = socket.send_to(&zero_copy, &addr).await?; Ok(byte_length) @@ -266,9 +266,7 @@ where .borrow() .resource_table .get::<net_unix::UnixDatagramResource>(rid) - .ok_or_else(|| { - custom_error("NotConnected", "Socket has been closed") - })?; + .map_err(|_| custom_error("NotConnected", "Socket has been closed"))?; let socket = RcRef::map(&resource, |r| &r.socket) .try_borrow_mut() .ok_or_else(|| custom_error("Busy", "Socket already in use"))?; diff --git a/ext/net/ops_tls.rs b/ext/net/ops_tls.rs index 14a135d7d..b89cc4005 100644 --- a/ext/net/ops_tls.rs +++ b/ext/net/ops_tls.rs @@ -11,7 +11,6 @@ use crate::DefaultTlsOptions; use crate::NetPermissions; use crate::UnsafelyIgnoreCertificateErrors; use deno_core::error::bad_resource; -use deno_core::error::bad_resource_id; use deno_core::error::custom_error; use deno_core::error::generic_error; use deno_core::error::invalid_hostname; @@ -717,8 +716,7 @@ where let resource_rc = state .borrow_mut() .resource_table - .take::<TcpStreamResource>(rid) - .ok_or_else(bad_resource_id)?; + .take::<TcpStreamResource>(rid)?; let resource = Rc::try_unwrap(resource_rc) .expect("Only a single use of this resource should happen"); let (read_half, write_half) = resource.into_inner(); @@ -1019,7 +1017,7 @@ async fn op_accept_tls( .borrow() .resource_table .get::<TlsListenerResource>(rid) - .ok_or_else(|| bad_resource("Listener has been closed"))?; + .map_err(|_| bad_resource("Listener has been closed"))?; let cancel_handle = RcRef::map(&resource, |r| &r.cancel_handle); let tcp_listener = RcRef::map(&resource, |r| &r.tcp_listener) diff --git a/ext/net/ops_unix.rs b/ext/net/ops_unix.rs index 9dfcc231e..c39252fbf 100644 --- a/ext/net/ops_unix.rs +++ b/ext/net/ops_unix.rs @@ -87,7 +87,7 @@ pub(crate) async fn accept_unix( .borrow() .resource_table .get::<UnixListenerResource>(rid) - .ok_or_else(|| bad_resource("Listener has been closed"))?; + .map_err(|_| bad_resource("Listener has been closed"))?; let listener = RcRef::map(&resource, |r| &r.listener) .try_borrow_mut() .ok_or_else(|| custom_error("Busy", "Listener already in use"))?; @@ -124,7 +124,7 @@ pub(crate) async fn receive_unix_packet( .borrow() .resource_table .get::<UnixDatagramResource>(rid) - .ok_or_else(|| bad_resource("Socket has been closed"))?; + .map_err(|_| bad_resource("Socket has been closed"))?; let socket = RcRef::map(&resource, |r| &r.socket) .try_borrow_mut() .ok_or_else(|| custom_error("Busy", "Socket already in use"))?; |