diff options
| author | Markus Pettersson <markus.pettersson@mullvad.net> | 2024-10-18 11:08:31 +0200 |
|---|---|---|
| committer | Markus Pettersson <markus.pettersson@mullvad.net> | 2024-10-23 14:59:43 +0200 |
| commit | 9e99d2aa2d9df2d39002c15e75ccf44ccb7ead20 (patch) | |
| tree | 269885bcb0735cf3ac1a3538e4619d69ed0387bd /mullvad-api/src | |
| parent | 4d51fe6c0df45ee6ec911a67421d7994d9993cc5 (diff) | |
| download | mullvadvpn-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.rs | 4 | ||||
| -rw-r--r-- | mullvad-api/src/proxy.rs | 9 |
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) + } } } } |
