summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--talpid-core/src/tunnel_state_machine/connected_state.rs3
-rw-r--r--talpid-core/src/tunnel_state_machine/connecting_state.rs9
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)) => {