diff options
| -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, |
