diff options
| author | David Lönnhager <david.l@mullvad.net> | 2022-11-17 16:51:10 +0100 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2022-11-28 12:54:48 +0100 |
| commit | 09238fa3088ea525efa22f1e2e7a4797984cf11a (patch) | |
| tree | 8c0c1b460853978dd4479f4a99fcede258cc8e29 /mullvad-api/src | |
| parent | 182fcafab5c9448c3dfe2672d1d96eb66a4550c4 (diff) | |
| download | mullvadvpn-09238fa3088ea525efa22f1e2e7a4797984cf11a.tar.xz mullvadvpn-09238fa3088ea525efa22f1e2e7a4797984cf11a.zip | |
Don't use bridges if the API endpoint is overridden
Diffstat (limited to 'mullvad-api/src')
| -rw-r--r-- | mullvad-api/src/lib.rs | 3 | ||||
| -rw-r--r-- | mullvad-api/src/rest.rs | 10 |
2 files changed, 12 insertions, 1 deletions
diff --git a/mullvad-api/src/lib.rs b/mullvad-api/src/lib.rs index 68239665e4..d9a1dbd4d0 100644 --- a/mullvad-api/src/lib.rs +++ b/mullvad-api/src/lib.rs @@ -71,6 +71,7 @@ struct ApiEndpoint { addr: SocketAddr, disable_address_cache: bool, disable_tls: bool, + force_direct_connection: bool, } impl ApiEndpoint { @@ -102,6 +103,7 @@ impl ApiEndpoint { addr: SocketAddr::new(API_IP_DEFAULT, API_PORT_DEFAULT), disable_address_cache: false, disable_tls: false, + force_direct_connection: false, }; if cfg!(feature = "api-override") { @@ -115,6 +117,7 @@ impl ApiEndpoint { .parse() .expect("MULLVAD_API_ADDR is not a valid socketaddr"); api.disable_address_cache = true; + api.force_direct_connection = true; log::debug!("Overriding API. Using {} at {}", api.host, api.addr); } } diff --git a/mullvad-api/src/rest.rs b/mullvad-api/src/rest.rs index c80f01049a..3b4efe63b0 100644 --- a/mullvad-api/src/rest.rs +++ b/mullvad-api/src/rest.rs @@ -6,6 +6,7 @@ use crate::{ availability::ApiAvailabilityHandle, https_client_with_sni::{HttpsConnectorWithSni, HttpsConnectorWithSniHandle}, proxy::ApiConnectionMode, + API, }; use futures::{ channel::{mpsc, oneshot}, @@ -145,7 +146,9 @@ impl< socket_bypass_tx.clone(), ); - if let Some(config) = proxy_config_provider.next().await { + if API.force_direct_connection { + log::debug!("API proxies are disabled"); + } else if let Some(config) = proxy_config_provider.next().await { connector_handle.set_connection_mode(config); } @@ -214,6 +217,11 @@ impl< self.connector_handle.reset(); } RequestCommand::NextApiConfig => { + if API.force_direct_connection { + log::debug!("Ignoring API connection mode"); + return; + } + if let Some(new_config) = self.proxy_config_provider.next().await { let endpoint = match new_config.get_endpoint() { Some(endpoint) => endpoint, |
