diff options
Diffstat (limited to 'talpid-core')
| -rw-r--r-- | talpid-core/src/tunnel_state_machine/disconnected_state.rs | 4 | ||||
| -rw-r--r-- | talpid-core/src/tunnel_state_machine/disconnecting_state.rs | 10 |
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)) => { |
