diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2018-08-30 14:50:25 -0300 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2018-09-03 08:05:18 -0300 |
| commit | 329efd1f50a640c7cb20f042446a3eed5186057b (patch) | |
| tree | 4c4a0daf7459748574f360c1483898554719ca7f /talpid-core/src | |
| parent | d35b7d5f22ea2018aa0a383c846c4fdcb6d9f080 (diff) | |
| download | mullvadvpn-329efd1f50a640c7cb20f042446a3eed5186057b.tar.xz mullvadvpn-329efd1f50a640c7cb20f042446a3eed5186057b.zip | |
Block connection if starting the tunnel fails
Diffstat (limited to 'talpid-core/src')
| -rw-r--r-- | talpid-core/src/tunnel_state_machine/connecting_state.rs | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/talpid-core/src/tunnel_state_machine/connecting_state.rs b/talpid-core/src/tunnel_state_machine/connecting_state.rs index 8aee60fd69..41031faa34 100644 --- a/talpid-core/src/tunnel_state_machine/connecting_state.rs +++ b/talpid-core/src/tunnel_state_machine/connecting_state.rs @@ -10,11 +10,12 @@ use futures::sync::{mpsc, oneshot}; use futures::{Async, Future, Sink, Stream}; use talpid_types::net::{TunnelEndpoint, TunnelEndpointData}; +use talpid_types::tunnel::BlockReason; use super::{ - AfterDisconnect, ConnectedState, ConnectedStateBootstrap, DisconnectedState, - DisconnectingState, EventConsequence, Result, ResultExt, SharedTunnelStateValues, - TunnelCommand, TunnelParameters, TunnelState, TunnelStateTransition, TunnelStateWrapper, + AfterDisconnect, BlockedState, ConnectedState, ConnectedStateBootstrap, DisconnectingState, + EventConsequence, Result, ResultExt, SharedTunnelStateValues, TunnelCommand, TunnelParameters, + TunnelState, TunnelStateTransition, TunnelStateWrapper, }; use logging; use security::{NetworkSecurity, SecurityPolicy}; @@ -278,8 +279,10 @@ impl TunnelState for ConnectingState { TunnelStateTransition::Connecting, ), Err(error) => { - error!("{}", error.chain_err(|| "Failed to start tunnel")); - DisconnectedState::enter(shared_values, ()) + let chained_error = error.chain_err(|| "Failed to start tunnel"); + error!("{}", chained_error.display_chain()); + + BlockedState::enter(shared_values, BlockReason::StartTunnelError) } } } |
