Return error for InvalidDnsNameError, don't panic (#436)

Can't provide src for the error as rustls 0.20 didn't implement stdlib Error for it; it's on main and targeted for 0.20.1.
This commit is contained in:
Malloc Voidstar
2021-11-12 17:15:39 -08:00
committed by GitHub
parent dbc52eb88d
commit 31dd67380e

View File

@@ -367,9 +367,10 @@ pub(crate) fn connect_https(unit: &Unit, hostname: &str) -> Result<Stream, Error
let mut sock = connect_host(unit, hostname, port)?; let mut sock = connect_host(unit, hostname, port)?;
let mut sess = rustls::ClientConnection::new( let mut sess = rustls::ClientConnection::new(
tls_conf, tls_conf,
rustls::ServerName::try_from(hostname).expect("invalid DNS name"), rustls::ServerName::try_from(hostname).map_err(|_e| ErrorKind::Dns.new())?,
) )
.map_err(|e| ErrorKind::Io.new().src(e))?; .map_err(|e| ErrorKind::Io.new().src(e))?;
// TODO rustls 0.20.1: Add src to ServerName error (0.20 didn't implement StdError trait for it)
sess.complete_io(&mut sock) sess.complete_io(&mut sock)
.map_err(|err| ErrorKind::ConnectionFailed.new().src(err))?; .map_err(|err| ErrorKind::ConnectionFailed.new().src(err))?;