summaryrefslogtreecommitdiff
path: root/op_crates/websocket/lib.rs
diff options
context:
space:
mode:
authorBert Belder <bertbelder@gmail.com>2021-04-26 19:39:55 +0000
committerBert Belder <bertbelder@gmail.com>2021-04-26 23:40:45 +0200
commit299518d9357ca81efa12f295f65086708f392531 (patch)
tree14817be22e60bf143f9d4108f5813dc985ec3ac5 /op_crates/websocket/lib.rs
parent87c055b371e6388f73c88ad26f56bca67f6691f4 (diff)
fix(tls): throw meaningful error when hostname is invalid (#10387)
`InvalidDNSNameError` is thrown when a string is not a valid hostname, e.g. it contains invalid characters, or starts with a numeric digit. It does not involve a (failed) DNS lookup.
Diffstat (limited to 'op_crates/websocket/lib.rs')
-rw-r--r--op_crates/websocket/lib.rs5
1 files changed, 3 insertions, 2 deletions
diff --git a/op_crates/websocket/lib.rs b/op_crates/websocket/lib.rs
index daf61a908..a2454b8e3 100644
--- a/op_crates/websocket/lib.rs
+++ b/op_crates/websocket/lib.rs
@@ -1,6 +1,7 @@
// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license.
use deno_core::error::bad_resource_id;
+use deno_core::error::invalid_hostname;
use deno_core::error::null_opbuf;
use deno_core::error::type_error;
use deno_core::error::AnyError;
@@ -175,8 +176,8 @@ where
}
let tls_connector = TlsConnector::from(Arc::new(config));
- let dnsname =
- DNSNameRef::try_from_ascii_str(&domain).expect("Invalid DNS lookup");
+ let dnsname = DNSNameRef::try_from_ascii_str(domain)
+ .map_err(|_| invalid_hostname(domain))?;
let tls_socket = tls_connector.connect(dnsname, tcp_socket).await?;
MaybeTlsStream::Rustls(tls_socket)
}