summaryrefslogtreecommitdiffhomepage
path: root/mullvad-api/src
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2022-11-17 16:51:10 +0100
committerDavid Lönnhager <david.l@mullvad.net>2022-11-28 12:54:48 +0100
commit09238fa3088ea525efa22f1e2e7a4797984cf11a (patch)
tree8c0c1b460853978dd4479f4a99fcede258cc8e29 /mullvad-api/src
parent182fcafab5c9448c3dfe2672d1d96eb66a4550c4 (diff)
downloadmullvadvpn-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.rs3
-rw-r--r--mullvad-api/src/rest.rs10
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,