summaryrefslogtreecommitdiff
path: root/cli/ops/net.rs
diff options
context:
space:
mode:
authorBartek IwaƄczuk <biwanczuk@gmail.com>2019-11-07 17:11:15 +0100
committerRy Dahl <ry@tinyclouds.org>2019-11-07 11:11:15 -0500
commit25c276055b3dfdcecd77d18a0c6ebfcee531442d (patch)
treef15f6170b6e9d966a9188f74bfb3e5bec45a3512 /cli/ops/net.rs
parent415d4c2e5236f6d8dfef8865b1665f144c39a019 (diff)
refactor: remove cli::resources::Resource (#3285)
Diffstat (limited to 'cli/ops/net.rs')
-rw-r--r--cli/ops/net.rs32
1 files changed, 19 insertions, 13 deletions
diff --git a/cli/ops/net.rs b/cli/ops/net.rs
index d603b746b..a4b3bf934 100644
--- a/cli/ops/net.rs
+++ b/cli/ops/net.rs
@@ -4,7 +4,7 @@ use crate::deno_error::bad_resource;
use crate::ops::json_op;
use crate::resolve_addr::resolve_addr;
use crate::resources;
-use crate::resources::CoreResource;
+use crate::resources::CliResource;
use crate::resources::Resource;
use crate::state::ThreadSafeState;
use deno::*;
@@ -132,13 +132,13 @@ fn op_accept(
.and_then(move |(tcp_stream, _socket_addr)| {
let local_addr = tcp_stream.local_addr()?;
let remote_addr = tcp_stream.peer_addr()?;
- let tcp_stream_resource = resources::add_tcp_stream(tcp_stream);
- Ok((tcp_stream_resource, local_addr, remote_addr))
+ let rid = resources::add_tcp_stream(tcp_stream);
+ Ok((rid, local_addr, remote_addr))
})
.map_err(ErrBox::from)
- .and_then(move |(tcp_stream_resource, local_addr, remote_addr)| {
+ .and_then(move |(rid, local_addr, remote_addr)| {
futures::future::ok(json!({
- "rid": tcp_stream_resource.rid,
+ "rid": rid,
"localAddr": local_addr.to_string(),
"remoteAddr": remote_addr.to_string(),
}))
@@ -170,13 +170,13 @@ fn op_dial(
.and_then(move |tcp_stream| {
let local_addr = tcp_stream.local_addr()?;
let remote_addr = tcp_stream.peer_addr()?;
- let tcp_stream_resource = resources::add_tcp_stream(tcp_stream);
- Ok((tcp_stream_resource, local_addr, remote_addr))
+ let rid = resources::add_tcp_stream(tcp_stream);
+ Ok((rid, local_addr, remote_addr))
})
.map_err(ErrBox::from)
- .and_then(move |(tcp_stream_resource, local_addr, remote_addr)| {
+ .and_then(move |(rid, local_addr, remote_addr)| {
futures::future::ok(json!({
- "rid": tcp_stream_resource.rid,
+ "rid": rid,
"localAddr": local_addr.to_string(),
"remoteAddr": remote_addr.to_string(),
}))
@@ -201,7 +201,6 @@ fn op_shutdown(
let rid = args.rid as u32;
let how = args.how;
- let mut resource = resources::lookup(rid)?;
let shutdown_mode = match how {
0 => Shutdown::Read,
@@ -209,8 +208,15 @@ fn op_shutdown(
_ => unimplemented!(),
};
- // Use UFCS for disambiguation
- Resource::shutdown(&mut resource, shutdown_mode)?;
+ let mut table = resources::lock_resource_table();
+ let resource = table.get_mut::<CliResource>(rid).ok_or_else(bad_resource)?;
+ match resource {
+ CliResource::TcpStream(ref mut stream) => {
+ TcpStream::shutdown(stream, shutdown_mode).map_err(ErrBox::from)?;
+ }
+ _ => return Err(bad_resource()),
+ }
+
Ok(JsonOp::Sync(json!({})))
}
@@ -228,7 +234,7 @@ struct TcpListenerResource {
local_addr: SocketAddr,
}
-impl CoreResource for TcpListenerResource {}
+impl Resource for TcpListenerResource {}
impl Drop for TcpListenerResource {
fn drop(&mut self) {