diff options
Diffstat (limited to 'ext/net')
| -rw-r--r-- | ext/net/io.rs | 57 | ||||
| -rw-r--r-- | ext/net/ops_tls.rs | 30 |
2 files changed, 23 insertions, 64 deletions
diff --git a/ext/net/io.rs b/ext/net/io.rs index c9587c851..4c9fbe3d2 100644 --- a/ext/net/io.rs +++ b/ext/net/io.rs @@ -9,7 +9,6 @@ use deno_core::CancelHandle; use deno_core::CancelTryFuture; use deno_core::RcRef; use deno_core::Resource; -use deno_core::ZeroCopyBuf; use socket2::SockRef; use std::borrow::Cow; use std::rc::Rc; @@ -69,22 +68,16 @@ where pub async fn read( self: Rc<Self>, - mut buf: ZeroCopyBuf, - ) -> Result<(usize, ZeroCopyBuf), AnyError> { + data: &mut [u8], + ) -> Result<usize, AnyError> { let mut rd = self.rd_borrow_mut().await; - let nread = rd - .read(&mut buf) - .try_or_cancel(self.cancel_handle()) - .await?; - Ok((nread, buf)) + let nread = rd.read(data).try_or_cancel(self.cancel_handle()).await?; + Ok(nread) } - pub async fn write( - self: Rc<Self>, - buf: ZeroCopyBuf, - ) -> Result<usize, AnyError> { + pub async fn write(self: Rc<Self>, data: &[u8]) -> Result<usize, AnyError> { let mut wr = self.wr_borrow_mut().await; - let nwritten = wr.write(&buf).await?; + let nwritten = wr.write(data).await?; Ok(nwritten) } @@ -99,21 +92,13 @@ pub type TcpStreamResource = FullDuplexResource<tcp::OwnedReadHalf, tcp::OwnedWriteHalf>; impl Resource for TcpStreamResource { + deno_core::impl_readable_byob!(); + deno_core::impl_writable!(); + fn name(&self) -> Cow<str> { "tcpStream".into() } - fn read_return( - self: Rc<Self>, - buf: ZeroCopyBuf, - ) -> AsyncResult<(usize, ZeroCopyBuf)> { - Box::pin(self.read(buf)) - } - - fn write(self: Rc<Self>, buf: ZeroCopyBuf) -> AsyncResult<usize> { - Box::pin(self.write(buf)) - } - fn shutdown(self: Rc<Self>) -> AsyncResult<()> { Box::pin(self.shutdown()) } @@ -161,16 +146,10 @@ pub struct UnixStreamResource; #[cfg(not(unix))] impl UnixStreamResource { - pub async fn read( - self: Rc<Self>, - _buf: ZeroCopyBuf, - ) -> Result<(usize, ZeroCopyBuf), AnyError> { + fn read(self: Rc<Self>, data: &mut [u8]) -> AsyncResult<usize> { unreachable!() } - pub async fn write( - self: Rc<Self>, - _buf: ZeroCopyBuf, - ) -> Result<usize, AnyError> { + fn write(self: Rc<Self>, data: &[u8]) -> AsyncResult<usize> { unreachable!() } pub async fn shutdown(self: Rc<Self>) -> Result<(), AnyError> { @@ -182,21 +161,13 @@ impl UnixStreamResource { } impl Resource for UnixStreamResource { + deno_core::impl_readable_byob!(); + deno_core::impl_writable!(); + fn name(&self) -> Cow<str> { "unixStream".into() } - fn read_return( - self: Rc<Self>, - buf: ZeroCopyBuf, - ) -> AsyncResult<(usize, ZeroCopyBuf)> { - Box::pin(self.read(buf)) - } - - fn write(self: Rc<Self>, buf: ZeroCopyBuf) -> AsyncResult<usize> { - Box::pin(self.write(buf)) - } - fn shutdown(self: Rc<Self>) -> AsyncResult<()> { Box::pin(self.shutdown()) } diff --git a/ext/net/ops_tls.rs b/ext/net/ops_tls.rs index 230f4359e..a1b48b84e 100644 --- a/ext/net/ops_tls.rs +++ b/ext/net/ops_tls.rs @@ -38,7 +38,6 @@ use deno_core::OpState; use deno_core::RcRef; use deno_core::Resource; use deno_core::ResourceId; -use deno_core::ZeroCopyBuf; use deno_tls::create_client_config; use deno_tls::load_certs; use deno_tls::load_private_keys; @@ -691,21 +690,18 @@ impl TlsStreamResource { pub async fn read( self: Rc<Self>, - mut buf: ZeroCopyBuf, - ) -> Result<(usize, ZeroCopyBuf), AnyError> { + data: &mut [u8], + ) -> Result<usize, AnyError> { let mut rd = RcRef::map(&self, |r| &r.rd).borrow_mut().await; let cancel_handle = RcRef::map(&self, |r| &r.cancel_handle); - let nread = rd.read(&mut buf).try_or_cancel(cancel_handle).await?; - Ok((nread, buf)) + let nread = rd.read(data).try_or_cancel(cancel_handle).await?; + Ok(nread) } - pub async fn write( - self: Rc<Self>, - buf: ZeroCopyBuf, - ) -> Result<usize, AnyError> { + pub async fn write(self: Rc<Self>, data: &[u8]) -> Result<usize, AnyError> { self.handshake().await?; let mut wr = RcRef::map(self, |r| &r.wr).borrow_mut().await; - let nwritten = wr.write(&buf).await?; + let nwritten = wr.write(data).await?; wr.flush().await?; Ok(nwritten) } @@ -736,21 +732,13 @@ impl TlsStreamResource { } impl Resource for TlsStreamResource { + deno_core::impl_readable_byob!(); + deno_core::impl_writable!(); + fn name(&self) -> Cow<str> { "tlsStream".into() } - fn read_return( - self: Rc<Self>, - buf: ZeroCopyBuf, - ) -> AsyncResult<(usize, ZeroCopyBuf)> { - Box::pin(self.read(buf)) - } - - fn write(self: Rc<Self>, buf: ZeroCopyBuf) -> AsyncResult<usize> { - Box::pin(self.write(buf)) - } - fn shutdown(self: Rc<Self>) -> AsyncResult<()> { Box::pin(self.shutdown()) } |
