diff options
author | EnokMan <416828041@qq.com> | 2019-10-23 22:19:27 +0800 |
---|---|---|
committer | Ry Dahl <ry@tinyclouds.org> | 2019-10-23 10:19:26 -0400 |
commit | 7c60ab46643d3190d1734678e085bc304c5f7813 (patch) | |
tree | d9d2967e736d6b3ed1b4476e6d060ab38c32f548 /cli/ops | |
parent | 4bebbda8db3c73725c9ee3ff528a0dad0e376f50 (diff) |
refactor DenoPermissions.check_net & resolve_addr (#3182)
Diffstat (limited to 'cli/ops')
-rw-r--r-- | cli/ops/net.rs | 16 | ||||
-rw-r--r-- | cli/ops/tls.rs | 17 |
2 files changed, 9 insertions, 24 deletions
diff --git a/cli/ops/net.rs b/cli/ops/net.rs index b3450222b..1c5aa6edd 100644 --- a/cli/ops/net.rs +++ b/cli/ops/net.rs @@ -70,13 +70,9 @@ fn op_dial( let args: DialArgs = serde_json::from_value(args)?; assert_eq!(args.transport, "tcp"); // TODO Support others. - // TODO(ry) Using format! is suboptimal here. Better would be if - // state.check_net and resolve_addr() took hostname and port directly. - let address = format!("{}:{}", args.hostname, args.port); + state.check_net(&args.hostname, args.port)?; - state.check_net(&address)?; - - let op = resolve_addr(&address).and_then(move |addr| { + let op = resolve_addr(&args.hostname, args.port).and_then(move |addr| { TcpStream::connect(&addr) .map_err(ErrBox::from) .and_then(move |tcp_stream| { @@ -141,13 +137,9 @@ fn op_listen( let args: ListenArgs = serde_json::from_value(args)?; assert_eq!(args.transport, "tcp"); - // TODO(ry) Using format! is suboptimal here. Better would be if - // state.check_net and resolve_addr() took hostname and port directly. - let address = format!("{}:{}", args.hostname, args.port); - - state.check_net(&address)?; + state.check_net(&args.hostname, args.port)?; - let addr = resolve_addr(&address).wait()?; + let addr = resolve_addr(&args.hostname, args.port).wait()?; let listener = TcpListener::bind(&addr)?; let local_addr = listener.local_addr()?; let resource = resources::add_tcp_listener(listener); diff --git a/cli/ops/tls.rs b/cli/ops/tls.rs index a0f4197ba..569b5a1f6 100644 --- a/cli/ops/tls.rs +++ b/cli/ops/tls.rs @@ -55,23 +55,19 @@ pub fn op_dial_tls( _zero_copy: Option<PinnedBuf>, ) -> Result<JsonOp, ErrBox> { let args: DialTLSArgs = serde_json::from_value(args)?; - - // TODO(ry) Using format! is suboptimal here. Better would be if - // state.check_net and resolve_addr() took hostname and port directly. - let address = format!("{}:{}", args.hostname, args.port); let cert_file = args.cert_file; - state.check_net(&address)?; + state.check_net(&args.hostname, args.port)?; if let Some(path) = cert_file.clone() { state.check_read(&path)?; } - let mut domain = args.hostname; + let mut domain = args.hostname.clone(); if domain.is_empty() { domain.push_str("localhost"); } - let op = resolve_addr(&address).and_then(move |addr| { + let op = resolve_addr(&args.hostname, args.port).and_then(move |addr| { TcpStream::connect(&addr) .and_then(move |tcp_stream| { let local_addr = tcp_stream.local_addr()?; @@ -189,13 +185,10 @@ fn op_listen_tls( let args: ListenTlsArgs = serde_json::from_value(args)?; assert_eq!(args.transport, "tcp"); - // TODO(ry) Using format! is suboptimal here. Better would be if - // state.check_net and resolve_addr() took hostname and port directly. - let address = format!("{}:{}", args.hostname, args.port); let cert_file = args.cert_file; let key_file = args.key_file; - state.check_net(&address)?; + state.check_net(&args.hostname, args.port)?; state.check_read(&cert_file)?; state.check_read(&key_file)?; @@ -204,7 +197,7 @@ fn op_listen_tls( .set_single_cert(load_certs(&cert_file)?, load_keys(&key_file)?.remove(0)) .expect("invalid key or certificate"); let acceptor = TlsAcceptor::from(Arc::new(config)); - let addr = resolve_addr(&address).wait()?; + let addr = resolve_addr(&args.hostname, args.port).wait()?; let listener = TcpListener::bind(&addr)?; let local_addr = listener.local_addr()?; let resource = resources::add_tls_listener(listener, acceptor); |