enable sni for tls client (#691)

* enable sni for tls client
* update test case
* fix public_ip parse bug
This commit is contained in:
kevin
2025-03-19 01:15:34 +08:00
committed by GitHub
parent 3d1e841cc5
commit 81490d0662
4 changed files with 14 additions and 3 deletions
+10 -1
View File
@@ -183,6 +183,7 @@ impl WSTunnelConnector {
) -> Result<Box<dyn Tunnel>, TunnelError> {
let is_wss = is_wss(&addr)?;
let socket_addr = SocketAddr::from_url(addr.clone(), ip_version)?;
let domain = addr.domain();
let host = socket_addr.ip();
let stream = tcp_socket.connect(socket_addr).await?;
@@ -203,8 +204,16 @@ impl WSTunnelConnector {
init_crypto_provider();
let tls_conn =
tokio_rustls::TlsConnector::from(Arc::new(get_insecure_tls_client_config()));
let domain_or_ip = match domain {
None => {
host.to_string()
}
Some(domain) => {
domain.to_string()
}
};
let stream = tls_conn
.connect(host.to_string().try_into().unwrap(), stream)
.connect(domain_or_ip.try_into().unwrap(), stream)
.await?;
MaybeTlsStream::Rustls(stream)
} else {