summaryrefslogtreecommitdiffhomepage
path: root/talpid-core/src
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2018-08-30 14:50:25 -0300
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2018-09-03 08:05:18 -0300
commit329efd1f50a640c7cb20f042446a3eed5186057b (patch)
tree4c4a0daf7459748574f360c1483898554719ca7f /talpid-core/src
parentd35b7d5f22ea2018aa0a383c846c4fdcb6d9f080 (diff)
downloadmullvadvpn-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.rs13
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)
}
}
}