diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-12-03 21:07:27 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-12-04 13:18:17 +0000 |
| commit | 3e9554efb56b1db79b6f349ddf9e6c705dca6b82 (patch) | |
| tree | a5a20c85a947ccc3935a159b7335882b31f265d9 | |
| parent | b66a0f208ffcaac0a5603a4fa590d9445f6325eb (diff) | |
| download | mullvadvpn-3e9554efb56b1db79b6f349ddf9e6c705dca6b82.tar.xz mullvadvpn-3e9554efb56b1db79b6f349ddf9e6c705dca6b82.zip | |
Reconnect after changing custom DNS setting
| -rw-r--r-- | talpid-core/src/tunnel_state_machine/connected_state.rs | 3 | ||||
| -rw-r--r-- | talpid-core/src/tunnel_state_machine/connecting_state.rs | 9 |
2 files changed, 8 insertions, 4 deletions
diff --git a/talpid-core/src/tunnel_state_machine/connected_state.rs b/talpid-core/src/tunnel_state_machine/connected_state.rs index b150d32481..7292da0c67 100644 --- a/talpid-core/src/tunnel_state_machine/connected_state.rs +++ b/talpid-core/src/tunnel_state_machine/connected_state.rs @@ -205,6 +205,9 @@ impl ConnectedState { } match self.set_dns(shared_values) { + #[cfg(target_os = "android")] + Ok(()) => self.disconnect(shared_values, AfterDisconnect::Reconnect(0)), + #[cfg(not(target_os = "android"))] Ok(()) => SameState(self.into()), Err(error) => { log::error!( diff --git a/talpid-core/src/tunnel_state_machine/connecting_state.rs b/talpid-core/src/tunnel_state_machine/connecting_state.rs index 4077f6ad5e..6e561acc6b 100644 --- a/talpid-core/src/tunnel_state_machine/connecting_state.rs +++ b/talpid-core/src/tunnel_state_machine/connecting_state.rs @@ -236,10 +236,11 @@ impl ConnectingState { } } Some(TunnelCommand::CustomDns(servers)) => { - if let Err(error_cause) = shared_values.set_custom_dns(servers) { - self.disconnect(shared_values, AfterDisconnect::Block(error_cause)) - } else { - SameState(self.into()) + match shared_values.set_custom_dns(servers) { + #[cfg(target_os = "android")] + Ok(true) => self.disconnect(shared_values, AfterDisconnect::Reconnect(0)), + Ok(_) => SameState(self.into()), + Err(cause) => self.disconnect(shared_values, AfterDisconnect::Block(cause)), } } Some(TunnelCommand::BlockWhenDisconnected(block_when_disconnected)) => { |
