diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2019-05-23 22:47:55 +0200 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2019-05-23 23:47:55 +0300 |
commit | 1105982586d9554a5e7bf54fd4dc25c8724cd130 (patch) | |
tree | 4e15f0ad3098204ae2eca8f0ccdb644b8d8be9a7 /cli/ops.rs | |
parent | f92af3576afe9567d829aed3cf78836cb587c944 (diff) |
re-fix permissions for dial and listen (#2400)
Closes #2397
Diffstat (limited to 'cli/ops.rs')
-rw-r--r-- | cli/ops.rs | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/cli/ops.rs b/cli/ops.rs index bd1132fa3..eeb6a10c7 100644 --- a/cli/ops.rs +++ b/cli/ops.rs @@ -1625,19 +1625,18 @@ fn op_listen( data: Option<PinnedBuf>, ) -> Box<OpWithError> { assert!(data.is_none()); - if let Err(e) = state.check_net("listen") { - return odd_future(e); - } - let cmd_id = base.cmd_id(); let inner = base.inner_as_listen().unwrap(); let network = inner.network().unwrap(); assert_eq!(network, "tcp"); let address = inner.address().unwrap(); + if let Err(e) = state.check_net(&address) { + return odd_future(e); + } + Box::new(futures::future::result((move || { let addr = resolve_addr(address).wait()?; - let listener = TcpListener::bind(&addr)?; let resource = resources::add_tcp_listener(listener); @@ -1682,14 +1681,11 @@ fn new_conn(cmd_id: u32, tcp_stream: TcpStream) -> OpResult { } fn op_accept( - state: &ThreadSafeState, + _state: &ThreadSafeState, base: &msg::Base<'_>, data: Option<PinnedBuf>, ) -> Box<OpWithError> { assert!(data.is_none()); - if let Err(e) = state.check_net("accept") { - return odd_future(e); - } let cmd_id = base.cmd_id(); let inner = base.inner_as_accept().unwrap(); let server_rid = inner.rid(); @@ -1713,15 +1709,16 @@ fn op_dial( data: Option<PinnedBuf>, ) -> Box<OpWithError> { assert!(data.is_none()); - if let Err(e) = state.check_net("dial") { - return odd_future(e); - } let cmd_id = base.cmd_id(); let inner = base.inner_as_dial().unwrap(); let network = inner.network().unwrap(); assert_eq!(network, "tcp"); // TODO Support others. let address = inner.address().unwrap(); + if let Err(e) = state.check_net(&address) { + return odd_future(e); + } + let op = resolve_addr(address) .map_err(DenoError::from) |