summaryrefslogtreecommitdiff
path: root/ext/net
diff options
context:
space:
mode:
Diffstat (limited to 'ext/net')
-rw-r--r--ext/net/io.rs57
-rw-r--r--ext/net/ops_tls.rs30
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())
}