summaryrefslogtreecommitdiffhomepage
path: root/mullvad-api/src
diff options
context:
space:
mode:
authorMarkus Pettersson <markus.pettersson@mullvad.net>2024-10-18 11:08:31 +0200
committerMarkus Pettersson <markus.pettersson@mullvad.net>2024-10-23 14:59:43 +0200
commit9e99d2aa2d9df2d39002c15e75ccf44ccb7ead20 (patch)
tree269885bcb0735cf3ac1a3538e4619d69ed0387bd /mullvad-api/src
parent4d51fe6c0df45ee6ec911a67421d7994d9993cc5 (diff)
downloadmullvadvpn-9e99d2aa2d9df2d39002c15e75ccf44ccb7ead20.tar.xz
mullvadvpn-9e99d2aa2d9df2d39002c15e75ccf44ccb7ead20.zip
Enable Encrypted DNS proxy access method in the daemon
Diffstat (limited to 'mullvad-api/src')
-rw-r--r--mullvad-api/src/https_client_with_sni.rs4
-rw-r--r--mullvad-api/src/proxy.rs9
2 files changed, 12 insertions, 1 deletions
diff --git a/mullvad-api/src/https_client_with_sni.rs b/mullvad-api/src/https_client_with_sni.rs
index b8b908784c..898927513f 100644
--- a/mullvad-api/src/https_client_with_sni.rs
+++ b/mullvad-api/src/https_client_with_sni.rs
@@ -83,7 +83,6 @@ enum InnerConnectionMode {
Socks5(SocksConfig),
/// Connect to the destination via Mullvad Encrypted DNS proxy.
/// See [`mullvad-encrypted-dns-proxy`] for how the proxy works.
- #[allow(dead_code)] // TODO: Remove this allow
EncryptedDnsProxy(EncryptedDNSConfig),
}
@@ -277,6 +276,9 @@ impl TryFrom<ApiConnectionMode> for InnerConnectionMode {
peer: config.endpoint,
authentication: config.auth,
}),
+ ProxyConfig::EncryptedDnsProxy(config) => {
+ InnerConnectionMode::EncryptedDnsProxy(config)
+ }
},
})
}
diff --git a/mullvad-api/src/proxy.rs b/mullvad-api/src/proxy.rs
index 2fb2c4bf35..3cf38acab0 100644
--- a/mullvad-api/src/proxy.rs
+++ b/mullvad-api/src/proxy.rs
@@ -2,6 +2,7 @@ use hyper_util::client::legacy::connect::{Connected, Connection};
use serde::{Deserialize, Serialize};
use std::{
fmt, io,
+ net::SocketAddr,
path::Path,
pin::Pin,
task::{self, Poll},
@@ -74,6 +75,7 @@ pub enum ProxyConfig {
Shadowsocks(proxy::Shadowsocks),
Socks5Local(proxy::Socks5Local),
Socks5Remote(proxy::Socks5Remote),
+ EncryptedDnsProxy(mullvad_encrypted_dns_proxy::config::ProxyConfig),
}
impl ProxyConfig {
@@ -87,6 +89,10 @@ impl ProxyConfig {
ProxyConfig::Socks5Remote(remote) => {
Endpoint::from_socket_address(remote.endpoint, TransportProtocol::Tcp)
}
+ ProxyConfig::EncryptedDnsProxy(proxy) => {
+ let addr = SocketAddr::V4(proxy.addr);
+ Endpoint::from_socket_address(addr, TransportProtocol::Tcp)
+ }
}
}
}
@@ -100,6 +106,9 @@ impl fmt::Display for ProxyConfig {
ProxyConfig::Socks5Local(local) => {
write!(f, "Socks5 {} via localhost:{}", endpoint, local.local_port)
}
+ ProxyConfig::EncryptedDnsProxy(proxy) => {
+ write!(f, "ApiSusan {}", proxy.addr)
+ }
}
}
}