fix: pass IPv6 addresses as host name in TLS connections
rustls does not like the brackets `[]` in `rustls::ServerName::try_from()`. Signed-off-by: Harald Hoyer <harald@matterlabs.dev>
This commit is contained in:
committed by
Martin Algesten
parent
d3e9b2d57a
commit
4a2ecdf123
@@ -115,6 +115,13 @@ impl TlsConnector for Arc<rustls::ClientConfig> {
|
||||
dns_name: &str,
|
||||
mut io: Box<dyn ReadWrite>,
|
||||
) -> Result<Box<dyn ReadWrite>, Error> {
|
||||
let dns_name = if dns_name.starts_with('[') && dns_name.ends_with(']') {
|
||||
// rustls doesn't like ipv6 addresses with brackets
|
||||
&dns_name[1..dns_name.len() - 1]
|
||||
} else {
|
||||
dns_name
|
||||
};
|
||||
|
||||
let sni = rustls::ServerName::try_from(dns_name)
|
||||
.map_err(|e| ErrorKind::Dns.msg(format!("parsing '{}'", dns_name)).src(e))?;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user