summaryrefslogtreecommitdiffhomepage
path: root/talpid-core
diff options
context:
space:
mode:
Diffstat (limited to 'talpid-core')
-rw-r--r--talpid-core/src/tunnel_state_machine/disconnected_state.rs4
-rw-r--r--talpid-core/src/tunnel_state_machine/disconnecting_state.rs10
2 files changed, 13 insertions, 1 deletions
diff --git a/talpid-core/src/tunnel_state_machine/disconnected_state.rs b/talpid-core/src/tunnel_state_machine/disconnected_state.rs
index 7074e7c961..3d4518a050 100644
--- a/talpid-core/src/tunnel_state_machine/disconnected_state.rs
+++ b/talpid-core/src/tunnel_state_machine/disconnected_state.rs
@@ -42,6 +42,10 @@ impl TunnelState for DisconnectedState {
use self::EventConsequence::*;
match try_handle_event!(self, commands.poll()) {
+ Ok(TunnelCommand::AllowLan(allow_lan)) => {
+ shared_values.allow_lan = allow_lan;
+ SameState(self)
+ }
Ok(TunnelCommand::Connect(parameters)) => {
NewState(ConnectingState::enter(shared_values, parameters))
}
diff --git a/talpid-core/src/tunnel_state_machine/disconnecting_state.rs b/talpid-core/src/tunnel_state_machine/disconnecting_state.rs
index 429c3ef07b..5028792c11 100644
--- a/talpid-core/src/tunnel_state_machine/disconnecting_state.rs
+++ b/talpid-core/src/tunnel_state_machine/disconnecting_state.rs
@@ -33,15 +33,23 @@ impl DisconnectingState {
self.after_disconnect = match after_disconnect {
AfterDisconnect::Nothing => match event {
+ Ok(TunnelCommand::AllowLan(allow_lan)) => {
+ shared_values.allow_lan = allow_lan;
+ Nothing
+ }
Ok(TunnelCommand::Connect(parameters)) => Reconnect(parameters),
Ok(TunnelCommand::Block(reason)) => Block(reason),
_ => Nothing,
},
AfterDisconnect::Block(reason) => match event {
+ Ok(TunnelCommand::AllowLan(allow_lan)) => {
+ shared_values.allow_lan = allow_lan;
+ Block(reason)
+ }
Ok(TunnelCommand::Connect(parameters)) => Reconnect(parameters),
Ok(TunnelCommand::Disconnect) => Nothing,
Ok(TunnelCommand::Block(new_reason)) => Block(new_reason),
- _ => Block(reason),
+ Err(_) => Block(reason),
},
AfterDisconnect::Reconnect(tunnel_parameters) => match event {
Ok(TunnelCommand::AllowLan(allow_lan)) => {