diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-11-24 20:02:05 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-11-25 12:36:21 +0000 |
| commit | affc6b9a4273c5226b5b31b3f96ab1ef54abded8 (patch) | |
| tree | 64849b376ffc81185a0e373acb5dbee7dc3d8a1b | |
| parent | f4e5137301ec48f48885266937ee6435b0c50301 (diff) | |
| download | mullvadvpn-affc6b9a4273c5226b5b31b3f96ab1ef54abded8.tar.xz mullvadvpn-affc6b9a4273c5226b5b31b3f96ab1ef54abded8.zip | |
Reconnect after changing allow LAN on Android
| -rw-r--r-- | talpid-core/src/tunnel_state_machine/connected_state.rs | 11 | ||||
| -rw-r--r-- | talpid-core/src/tunnel_state_machine/connecting_state.rs | 11 |
2 files changed, 20 insertions, 2 deletions
diff --git a/talpid-core/src/tunnel_state_machine/connected_state.rs b/talpid-core/src/tunnel_state_machine/connected_state.rs index 432ff1b4d7..a5a8861016 100644 --- a/talpid-core/src/tunnel_state_machine/connected_state.rs +++ b/talpid-core/src/tunnel_state_machine/connected_state.rs @@ -7,6 +7,7 @@ use crate::{ firewall::FirewallPolicy, tunnel::{CloseHandle, TunnelEvent, TunnelMetadata}, }; +use cfg_if::cfg_if; use futures::{channel::mpsc, stream::Fuse, StreamExt}; use std::net::IpAddr; use talpid_types::{ @@ -175,7 +176,15 @@ impl ConnectedState { self.disconnect(shared_values, AfterDisconnect::Block(error_cause)) } else { match self.set_firewall_policy(shared_values) { - Ok(()) => SameState(self.into()), + Ok(()) => { + cfg_if! { + if #[cfg(target_os = "android")] { + self.disconnect(shared_values, AfterDisconnect::Reconnect(0)) + } else { + SameState(self.into()) + } + } + } Err(error) => self.disconnect( shared_values, AfterDisconnect::Block(ErrorStateCause::SetFirewallPolicyError(error)), diff --git a/talpid-core/src/tunnel_state_machine/connecting_state.rs b/talpid-core/src/tunnel_state_machine/connecting_state.rs index bc59a1d812..614d82e233 100644 --- a/talpid-core/src/tunnel_state_machine/connecting_state.rs +++ b/talpid-core/src/tunnel_state_machine/connecting_state.rs @@ -10,6 +10,7 @@ use crate::{ self, tun_provider::TunProvider, CloseHandle, TunnelEvent, TunnelMetadata, TunnelMonitor, }, }; +use cfg_if::cfg_if; use futures::{ channel::{mpsc, oneshot}, future::Fuse, @@ -229,7 +230,15 @@ impl ConnectingState { self.disconnect(shared_values, AfterDisconnect::Block(error_cause)) } else { match Self::set_firewall_policy(shared_values, &self.tunnel_parameters) { - Ok(()) => SameState(self.into()), + Ok(()) => { + cfg_if! { + if #[cfg(target_os = "android")] { + self.disconnect(shared_values, AfterDisconnect::Reconnect(0)) + } else { + SameState(self.into()) + } + } + } Err(error) => self.disconnect( shared_values, AfterDisconnect::Block(ErrorStateCause::SetFirewallPolicyError(error)), |
