summaryrefslogtreecommitdiff
path: root/cli/ops/net.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/ops/net.rs')
-rw-r--r--cli/ops/net.rs35
1 files changed, 20 insertions, 15 deletions
diff --git a/cli/ops/net.rs b/cli/ops/net.rs
index 3d524d3f1..5ccb62d6c 100644
--- a/cli/ops/net.rs
+++ b/cli/ops/net.rs
@@ -40,7 +40,7 @@ struct AcceptArgs {
fn accept_tcp(
isolate_state: &mut CoreIsolateState,
args: AcceptArgs,
- _zero_copy: Option<ZeroCopyBuf>,
+ _zero_copy: &mut [ZeroCopyBuf],
) -> Result<JsonOp, OpError> {
let rid = args.rid as u32;
let resource_table = isolate_state.resource_table.clone();
@@ -101,7 +101,7 @@ fn op_accept(
isolate_state: &mut CoreIsolateState,
_state: &State,
args: Value,
- zero_copy: Option<ZeroCopyBuf>,
+ zero_copy: &mut [ZeroCopyBuf],
) -> Result<JsonOp, OpError> {
let args: AcceptArgs = serde_json::from_value(args)?;
match args.transport.as_str() {
@@ -125,9 +125,10 @@ fn receive_udp(
isolate_state: &mut CoreIsolateState,
_state: &State,
args: ReceiveArgs,
- zero_copy: Option<ZeroCopyBuf>,
+ zero_copy: &mut [ZeroCopyBuf],
) -> Result<JsonOp, OpError> {
- let mut buf = zero_copy.unwrap();
+ assert_eq!(zero_copy.len(), 1, "Invalid number of arguments");
+ let mut zero_copy = zero_copy[0].clone();
let rid = args.rid as u32;
@@ -142,7 +143,9 @@ fn receive_udp(
OpError::bad_resource("Socket has been closed".to_string())
})?;
let socket = &mut resource.socket;
- socket.poll_recv_from(cx, &mut buf).map_err(OpError::from)
+ socket
+ .poll_recv_from(cx, &mut zero_copy)
+ .map_err(OpError::from)
});
let (size, remote_addr) = receive_fut.await?;
Ok(json!({
@@ -162,9 +165,10 @@ fn op_receive(
isolate_state: &mut CoreIsolateState,
state: &State,
args: Value,
- zero_copy: Option<ZeroCopyBuf>,
+ zero_copy: &mut [ZeroCopyBuf],
) -> Result<JsonOp, OpError> {
- assert!(zero_copy.is_some());
+ assert_eq!(zero_copy.len(), 1, "Invalid number of arguments");
+
let args: ReceiveArgs = serde_json::from_value(args)?;
match args.transport.as_str() {
"udp" => receive_udp(isolate_state, state, args, zero_copy),
@@ -191,10 +195,11 @@ fn op_send(
isolate_state: &mut CoreIsolateState,
state: &State,
args: Value,
- zero_copy: Option<ZeroCopyBuf>,
+ zero_copy: &mut [ZeroCopyBuf],
) -> Result<JsonOp, OpError> {
- assert!(zero_copy.is_some());
- let buf = zero_copy.unwrap();
+ assert_eq!(zero_copy.len(), 1, "Invalid number of arguments");
+ let zero_copy = zero_copy[0].clone();
+
let resource_table = isolate_state.resource_table.clone();
match serde_json::from_value(args)? {
SendArgs {
@@ -213,7 +218,7 @@ fn op_send(
})?;
let socket = &mut resource.socket;
let addr = resolve_addr(&args.hostname, args.port)?;
- socket.send_to(&buf, addr).await?;
+ socket.send_to(&zero_copy, addr).await?;
Ok(json!({}))
};
@@ -237,7 +242,7 @@ fn op_send(
let socket = &mut resource.socket;
socket
- .send_to(&buf, &resource.local_addr.as_pathname().unwrap())
+ .send_to(&zero_copy, &resource.local_addr.as_pathname().unwrap())
.await?;
Ok(json!({}))
@@ -260,7 +265,7 @@ fn op_connect(
isolate_state: &mut CoreIsolateState,
state: &State,
args: Value,
- _zero_copy: Option<ZeroCopyBuf>,
+ _zero_copy: &mut [ZeroCopyBuf],
) -> Result<JsonOp, OpError> {
let resource_table = isolate_state.resource_table.clone();
match serde_json::from_value(args)? {
@@ -346,7 +351,7 @@ fn op_shutdown(
isolate_state: &mut CoreIsolateState,
state: &State,
args: Value,
- _zero_copy: Option<ZeroCopyBuf>,
+ _zero_copy: &mut [ZeroCopyBuf],
) -> Result<JsonOp, OpError> {
state.check_unstable("Deno.shutdown");
@@ -488,7 +493,7 @@ fn op_listen(
isolate_state: &mut CoreIsolateState,
state: &State,
args: Value,
- _zero_copy: Option<ZeroCopyBuf>,
+ _zero_copy: &mut [ZeroCopyBuf],
) -> Result<JsonOp, OpError> {
let mut resource_table = isolate_state.resource_table.borrow_mut();
match serde_json::from_value(args)? {