summaryrefslogtreecommitdiff
path: root/runtime/ops/tls.rs
diff options
context:
space:
mode:
authorYusuke Tanaka <yusuktan@maguro.dev>2020-12-15 21:02:26 +0900
committerGitHub <noreply@github.com>2020-12-15 07:02:26 -0500
commit6356345365e766d984f591506fb475d7935685de (patch)
tree580c8fbcc2542ca63fbe20af7fa74e67b05dad1b /runtime/ops/tls.rs
parent7a9766dd18cc85053c984cb991dc3debac92530c (diff)
fix: make DNS resolution async (#8743)
This commit adds a new function that is an asynchronous version of `resolve_addr` using `tokio::net::lookup_host`, and accordingly, renames the synchronous version to `resolve_addr_sync`. This allows async ops to resolve hosts with non-blocking.
Diffstat (limited to 'runtime/ops/tls.rs')
-rw-r--r--runtime/ops/tls.rs5
1 files changed, 3 insertions, 2 deletions
diff --git a/runtime/ops/tls.rs b/runtime/ops/tls.rs
index 37fd8f206..b59650ab0 100644
--- a/runtime/ops/tls.rs
+++ b/runtime/ops/tls.rs
@@ -3,6 +3,7 @@
use super::io::{StreamResource, StreamResourceHolder};
use crate::permissions::Permissions;
use crate::resolve_addr::resolve_addr;
+use crate::resolve_addr::resolve_addr_sync;
use deno_core::error::bad_resource;
use deno_core::error::bad_resource_id;
use deno_core::error::custom_error;
@@ -160,7 +161,7 @@ async fn op_connect_tls(
domain.push_str("localhost");
}
- let addr = resolve_addr(&args.hostname, args.port)?;
+ let addr = resolve_addr(&args.hostname, args.port).await?;
let tcp_stream = TcpStream::connect(&addr).await?;
let local_addr = tcp_stream.local_addr()?;
let remote_addr = tcp_stream.peer_addr()?;
@@ -334,7 +335,7 @@ fn op_listen_tls(
.set_single_cert(load_certs(&cert_file)?, load_keys(&key_file)?.remove(0))
.expect("invalid key or certificate");
let tls_acceptor = TlsAcceptor::from(Arc::new(config));
- let addr = resolve_addr(&args.hostname, args.port)?;
+ let addr = resolve_addr_sync(&args.hostname, args.port)?;
let std_listener = std::net::TcpListener::bind(&addr)?;
let listener = TcpListener::from_std(std_listener)?;
let local_addr = listener.local_addr()?;