summaryrefslogtreecommitdiffhomepage
path: root/mullvad-api/src
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2022-11-21 18:07:41 +0100
committerDavid Lönnhager <david.l@mullvad.net>2022-11-28 12:54:49 +0100
commit25c1459c8a97bb862f1a4c6272f4f9e85def41aa (patch)
treed48ad1da467383460ca8e493a296f15d83855ba0 /mullvad-api/src
parent27c30f5bfb0105c145ce235e7b54503718273b5f (diff)
downloadmullvadvpn-25c1459c8a97bb862f1a4c6272f4f9e85def41aa.tar.xz
mullvadvpn-25c1459c8a97bb862f1a4c6272f4f9e85def41aa.zip
Use specified port for the API
Diffstat (limited to 'mullvad-api/src')
-rw-r--r--mullvad-api/src/https_client_with_sni.rs13
1 files changed, 9 insertions, 4 deletions
diff --git a/mullvad-api/src/https_client_with_sni.rs b/mullvad-api/src/https_client_with_sni.rs
index 632d325ff3..bfacba69d5 100644
--- a/mullvad-api/src/https_client_with_sni.rs
+++ b/mullvad-api/src/https_client_with_sni.rs
@@ -215,18 +215,23 @@ impl HttpsConnectorWithSni {
}
async fn resolve_address(address_cache: AddressCache, uri: Uri) -> io::Result<SocketAddr> {
+ const DEFAULT_PORT: u16 = 443;
+
let hostname = uri.host().ok_or_else(|| {
io::Error::new(io::ErrorKind::InvalidInput, "invalid url, missing host")
})?;
- let port = uri.port_u16().unwrap_or(443);
+ let port = uri.port_u16();
if let Ok(addr) = hostname.parse::<IpAddr>() {
- return Ok(SocketAddr::new(addr, port));
+ return Ok(SocketAddr::new(addr, port.unwrap_or(DEFAULT_PORT)));
}
// Preferentially, use cached address.
//
if let Some(addr) = address_cache.resolve_hostname(hostname).await {
- return Ok(SocketAddr::new(addr.ip(), port));
+ return Ok(SocketAddr::new(
+ addr.ip(),
+ port.unwrap_or_else(|| addr.port()),
+ ));
}
// Use getaddrinfo as a fallback
@@ -241,7 +246,7 @@ impl HttpsConnectorWithSni {
let addr = addrs
.next()
.ok_or_else(|| io::Error::new(io::ErrorKind::Other, "Empty DNS response"))?;
- Ok(SocketAddr::new(addr.ip(), port))
+ Ok(SocketAddr::new(addr.ip(), port.unwrap_or(DEFAULT_PORT)))
}
}