summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--talpid-core/src/tunnel/tun_provider/android/mod.rs28
-rw-r--r--talpid-core/src/tunnel_state_machine/connected_state.rs2
-rw-r--r--talpid-core/src/tunnel_state_machine/connecting_state.rs3
-rw-r--r--talpid-core/src/tunnel_state_machine/disconnected_state.rs3
-rw-r--r--talpid-core/src/tunnel_state_machine/disconnecting_state.rs6
-rw-r--r--talpid-core/src/tunnel_state_machine/error_state.rs3
-rw-r--r--talpid-core/src/tunnel_state_machine/mod.rs18
7 files changed, 11 insertions, 52 deletions
diff --git a/talpid-core/src/tunnel/tun_provider/android/mod.rs b/talpid-core/src/tunnel/tun_provider/android/mod.rs
index 1772e26c23..12dfda6895 100644
--- a/talpid-core/src/tunnel/tun_provider/android/mod.rs
+++ b/talpid-core/src/tunnel/tun_provider/android/mod.rs
@@ -65,7 +65,6 @@ pub struct AndroidTunProvider {
object: GlobalRef,
last_tun_config: TunConfig,
allow_lan: bool,
- allowed_endpoint: IpAddr,
custom_dns_servers: Option<Vec<IpAddr>>,
}
@@ -74,7 +73,6 @@ impl AndroidTunProvider {
pub fn new(
context: AndroidContext,
allow_lan: bool,
- allowed_endpoint: IpAddr,
custom_dns_servers: Option<Vec<IpAddr>>,
) -> Self {
let env = JnixEnv::from(
@@ -91,7 +89,6 @@ impl AndroidTunProvider {
object: context.vpn_service,
last_tun_config: TunConfig::default(),
allow_lan,
- allowed_endpoint,
custom_dns_servers,
}
}
@@ -105,10 +102,6 @@ impl AndroidTunProvider {
Ok(())
}
- pub fn set_allowed_endpoint(&mut self, endpoint: IpAddr) {
- self.allowed_endpoint = endpoint;
- }
-
pub fn set_dns_servers(&mut self, servers: Option<Vec<IpAddr>>) -> Result<(), Error> {
if self.custom_dns_servers != servers {
self.custom_dns_servers = servers;
@@ -135,7 +128,7 @@ impl AndroidTunProvider {
})
}
- /// Open a tunnel device that routes everything but `allowed_endpoint`, custom DNS, and
+ /// Open a tunnel device that routes everything but custom DNS, and
/// (potentially) LAN routes via the tunnel device.
///
/// Will open a new tunnel if there is already an active tunnel. The previous tunnel will be
@@ -143,7 +136,6 @@ impl AndroidTunProvider {
pub fn create_blocking_tun(&mut self) -> Result<(), Error> {
let mut config = TunConfig::default();
self.prepare_tun_config(&mut config);
- self.prepare_tun_config_for_allowed_endpoint(&mut config);
let _ = self.get_tun(config)?;
Ok(())
}
@@ -250,24 +242,6 @@ impl AndroidTunProvider {
}
}
- fn prepare_tun_config_for_allowed_endpoint(&self, config: &mut TunConfig) {
- let endpoint_net = IpNetwork::from(self.allowed_endpoint);
- let routes = config
- .routes
- .iter()
- .flat_map(|&route| {
- if route.is_ipv4() && endpoint_net.is_ipv4() {
- route.sub(endpoint_net).collect()
- } else if route.is_ipv6() && endpoint_net.is_ipv6() {
- route.sub(endpoint_net).collect()
- } else {
- vec![route]
- }
- })
- .collect();
- config.routes = routes;
- }
-
fn prepare_tun_config(&self, config: &mut TunConfig) {
self.prepare_tun_config_for_allow_lan(config);
self.prepare_tun_config_for_custom_dns(config);
diff --git a/talpid-core/src/tunnel_state_machine/connected_state.rs b/talpid-core/src/tunnel_state_machine/connected_state.rs
index 52c410fdf6..d1224056fd 100644
--- a/talpid-core/src/tunnel_state_machine/connected_state.rs
+++ b/talpid-core/src/tunnel_state_machine/connected_state.rs
@@ -211,7 +211,7 @@ impl ConnectedState {
}
}
Some(TunnelCommand::AllowEndpoint(endpoint, tx)) => {
- let _ = shared_values.set_allowed_endpoint(endpoint);
+ shared_values.allowed_endpoint = endpoint;
if let Err(_) = tx.send(()) {
log::error!("The AllowEndpoint receiver was dropped");
}
diff --git a/talpid-core/src/tunnel_state_machine/connecting_state.rs b/talpid-core/src/tunnel_state_machine/connecting_state.rs
index 3c3be4c7f1..950ee1a43f 100644
--- a/talpid-core/src/tunnel_state_machine/connecting_state.rs
+++ b/talpid-core/src/tunnel_state_machine/connecting_state.rs
@@ -328,7 +328,8 @@ impl ConnectingState {
}
}
Some(TunnelCommand::AllowEndpoint(endpoint, tx)) => {
- if shared_values.set_allowed_endpoint(endpoint) {
+ if shared_values.allowed_endpoint != endpoint {
+ shared_values.allowed_endpoint = endpoint;
if let Err(error) = Self::set_firewall_policy(
shared_values,
&self.tunnel_parameters,
diff --git a/talpid-core/src/tunnel_state_machine/disconnected_state.rs b/talpid-core/src/tunnel_state_machine/disconnected_state.rs
index 6d0af09aee..d2578b5b8c 100644
--- a/talpid-core/src/tunnel_state_machine/disconnected_state.rs
+++ b/talpid-core/src/tunnel_state_machine/disconnected_state.rs
@@ -150,7 +150,8 @@ impl TunnelState for DisconnectedState {
SameState(self.into())
}
Some(TunnelCommand::AllowEndpoint(endpoint, tx)) => {
- if shared_values.set_allowed_endpoint(endpoint) {
+ if shared_values.allowed_endpoint != endpoint {
+ shared_values.allowed_endpoint = endpoint;
Self::set_firewall_policy(shared_values, true);
}
if let Err(_) = tx.send(()) {
diff --git a/talpid-core/src/tunnel_state_machine/disconnecting_state.rs b/talpid-core/src/tunnel_state_machine/disconnecting_state.rs
index 2d3444f44a..d81c315c1a 100644
--- a/talpid-core/src/tunnel_state_machine/disconnecting_state.rs
+++ b/talpid-core/src/tunnel_state_machine/disconnecting_state.rs
@@ -28,7 +28,7 @@ impl DisconnectingState {
AfterDisconnect::Nothing
}
Some(TunnelCommand::AllowEndpoint(endpoint, tx)) => {
- let _ = shared_values.set_allowed_endpoint(endpoint);
+ shared_values.allowed_endpoint = endpoint;
if let Err(_) = tx.send(()) {
log::error!("The AllowEndpoint receiver was dropped");
}
@@ -66,7 +66,7 @@ impl DisconnectingState {
AfterDisconnect::Block(reason)
}
Some(TunnelCommand::AllowEndpoint(endpoint, tx)) => {
- let _ = shared_values.set_allowed_endpoint(endpoint);
+ shared_values.allowed_endpoint = endpoint;
if let Err(_) = tx.send(()) {
log::error!("The AllowEndpoint receiver was dropped");
}
@@ -109,7 +109,7 @@ impl DisconnectingState {
AfterDisconnect::Reconnect(retry_attempt)
}
Some(TunnelCommand::AllowEndpoint(endpoint, tx)) => {
- let _ = shared_values.set_allowed_endpoint(endpoint);
+ shared_values.allowed_endpoint = endpoint;
if let Err(_) = tx.send(()) {
log::error!("The AllowEndpoint receiver was dropped");
}
diff --git a/talpid-core/src/tunnel_state_machine/error_state.rs b/talpid-core/src/tunnel_state_machine/error_state.rs
index 5464acac12..63558aeb93 100644
--- a/talpid-core/src/tunnel_state_machine/error_state.rs
+++ b/talpid-core/src/tunnel_state_machine/error_state.rs
@@ -149,7 +149,8 @@ impl TunnelState for ErrorState {
}
}
Some(TunnelCommand::AllowEndpoint(endpoint, tx)) => {
- if shared_values.set_allowed_endpoint(endpoint) {
+ if shared_values.allowed_endpoint != endpoint {
+ shared_values.allowed_endpoint = endpoint;
let _ = Self::set_firewall_policy(shared_values);
#[cfg(target_os = "android")]
diff --git a/talpid-core/src/tunnel_state_machine/mod.rs b/talpid-core/src/tunnel_state_machine/mod.rs
index 7fdaf18a83..cd8fba4091 100644
--- a/talpid-core/src/tunnel_state_machine/mod.rs
+++ b/talpid-core/src/tunnel_state_machine/mod.rs
@@ -122,8 +122,6 @@ pub async fn spawn(
#[cfg(target_os = "android")]
initial_settings.allow_lan,
#[cfg(target_os = "android")]
- initial_settings.allowed_endpoint.endpoint.address.ip(),
- #[cfg(target_os = "android")]
initial_settings.dns_servers.clone(),
);
@@ -431,22 +429,6 @@ impl SharedTunnelStateValues {
Ok(())
}
- pub fn set_allowed_endpoint(&mut self, endpoint: AllowedEndpoint) -> bool {
- if self.allowed_endpoint != endpoint {
- #[cfg(target_os = "android")]
- self.tun_provider
- .lock()
- .unwrap()
- .set_allowed_endpoint(endpoint.endpoint.address.ip());
-
- self.allowed_endpoint = endpoint;
-
- true
- } else {
- false
- }
- }
-
pub fn set_dns_servers(
&mut self,
dns_servers: Option<Vec<IpAddr>>,