diff options
Diffstat (limited to 'src/request')
| -rw-r--r-- | src/request/blocking.rs | 7 | ||||
| -rw-r--r-- | src/request/non_blocking.rs | 10 |
2 files changed, 13 insertions, 4 deletions
diff --git a/src/request/blocking.rs b/src/request/blocking.rs index 2002ed8..984f886 100644 --- a/src/request/blocking.rs +++ b/src/request/blocking.rs @@ -44,13 +44,16 @@ pub fn request(url: &url::Url) -> anyhow::Result<Response> { .with_safe_defaults() .with_custom_certificate_verifier(std::sync::Arc::new(GermVerifier::new())) .with_no_client_auth(); + let domain = url + .domain() + .ok_or_else(|| anyhow::anyhow!("Invalid URL: missing domain"))?; let mut connection = rustls::ClientConnection::new( std::sync::Arc::new(config), - url.domain().unwrap_or("").try_into()?, + domain.try_into()?, )?; let mut stream = std::net::TcpStream::connect(format!( "{}:{}", - url.domain().unwrap_or(""), + domain, url.port().unwrap_or(1965) ))?; let mut tls = rustls::Stream::new(&mut connection, &mut stream); diff --git a/src/request/non_blocking.rs b/src/request/non_blocking.rs index 3bbcd95..85856e7 100644 --- a/src/request/non_blocking.rs +++ b/src/request/non_blocking.rs @@ -55,10 +55,16 @@ pub async fn request(url: &url::Url) -> anyhow::Result<Response> { .with_no_client_auth(), )) .connect( - rustls::ServerName::try_from(url.domain().unwrap_or_default())?, + rustls::ServerName::try_from( + url + .domain() + .ok_or_else(|| anyhow::anyhow!("Invalid URL: missing domain"))?, + )?, tokio::net::TcpStream::connect(format!( "{}:{}", - url.domain().unwrap_or(""), + url + .domain() + .ok_or_else(|| anyhow::anyhow!("Invalid URL: missing domain"))?, url.port().unwrap_or(1965) )) .await?, |