summaryrefslogtreecommitdiffhomepage
path: root/mullvad-daemon
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2024-11-27 15:09:05 +0100
committerDavid Lönnhager <david.l@mullvad.net>2024-12-02 16:00:38 +0100
commit94ce8fb753f7441243d9281416632ce7ed4b6cd6 (patch)
tree8fa86e98b4b50ecd70ebf6468d222cad8e6cf552 /mullvad-daemon
parente07c12a5f14a11051fa086c97cc22413e431a1c8 (diff)
downloadmullvadvpn-94ce8fb753f7441243d9281416632ce7ed4b6cd6.tar.xz
mullvadvpn-94ce8fb753f7441243d9281416632ce7ed4b6cd6.zip
Remove DNS fallback except for conncheck
Diffstat (limited to 'mullvad-daemon')
-rw-r--r--mullvad-daemon/src/android_dns.rs6
-rw-r--r--mullvad-daemon/src/lib.rs15
2 files changed, 10 insertions, 11 deletions
diff --git a/mullvad-daemon/src/android_dns.rs b/mullvad-daemon/src/android_dns.rs
index ed44f5dc8c..5cbc9c271a 100644
--- a/mullvad-daemon/src/android_dns.rs
+++ b/mullvad-daemon/src/android_dns.rs
@@ -7,7 +7,7 @@ use hickory_resolver::{
TokioAsyncResolver,
};
use mullvad_api::DnsResolver;
-use std::{io, net::IpAddr};
+use std::{io, net::SocketAddr};
use talpid_core::connectivity_listener::ConnectivityListener;
/// A non-blocking DNS resolver. The default resolver uses `getaddrinfo`, which often prevents the
@@ -27,7 +27,7 @@ impl AndroidDnsResolver {
#[async_trait]
impl DnsResolver for AndroidDnsResolver {
- async fn resolve(&self, host: String) -> io::Result<Vec<IpAddr>> {
+ async fn resolve(&self, host: String) -> io::Result<Vec<SocketAddr>> {
let ips = self
.connectivity_listener
.current_dns_servers()
@@ -44,6 +44,6 @@ impl DnsResolver for AndroidDnsResolver {
.await
.map_err(|err| io::Error::other(format!("lookup_ip failed: {err}")))?;
- Ok(lookup.into_iter().collect())
+ Ok(lookup.into_iter().map(|ip| (ip, 0).into()).collect())
}
}
diff --git a/mullvad-daemon/src/lib.rs b/mullvad-daemon/src/lib.rs
index 79f08e8a0f..4f98c73d01 100644
--- a/mullvad-daemon/src/lib.rs
+++ b/mullvad-daemon/src/lib.rs
@@ -39,8 +39,6 @@ use futures::{
};
use geoip::GeoIpHandler;
use management_interface::ManagementInterfaceServer;
-#[cfg(not(target_os = "android"))]
-use mullvad_api::DefaultDnsResolver;
use mullvad_relay_selector::{RelaySelector, SelectorConfig};
#[cfg(target_os = "android")]
use mullvad_types::account::{PlayPurchase, PlayPurchasePaymentToken};
@@ -622,10 +620,6 @@ impl Daemon {
mullvad_api::proxy::ApiConnectionMode::try_delete_cache(&cache_dir).await;
let api_runtime = mullvad_api::Runtime::with_cache(
- #[cfg(target_os = "android")]
- android_dns::AndroidDnsResolver::new(connectivity_listener.clone()),
- #[cfg(not(target_os = "android"))]
- DefaultDnsResolver,
&cache_dir,
true,
#[cfg(target_os = "android")]
@@ -798,7 +792,7 @@ impl Daemon {
#[cfg(target_os = "android")]
android_context,
#[cfg(target_os = "android")]
- connectivity_listener,
+ connectivity_listener.clone(),
#[cfg(target_os = "linux")]
tunnel_state_machine::LinuxNetworkingIdentifiers {
fwmark: mullvad_types::TUNNEL_FWMARK,
@@ -835,7 +829,12 @@ impl Daemon {
relay_list_updater.update().await;
let location_handler = GeoIpHandler::new(
- api_runtime.rest_handle(),
+ api_runtime.rest_handle(
+ #[cfg(not(target_os = "android"))]
+ mullvad_api::DefaultDnsResolver,
+ #[cfg(target_os = "android")]
+ android_dns::AndroidDnsResolver::new(connectivity_listener),
+ ),
internal_event_tx.clone().to_specialized_sender(),
);