summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorEmīls Piņķis <emils@mullvad.net>2019-03-12 12:37:22 +0000
committerEmīls Piņķis <emils@mullvad.net>2019-03-12 12:37:22 +0000
commit2bf55fd253abf427ed725d6722349a43d9c14eea (patch)
tree88a661c4b044fbd48612879bdff54ad55aa59156
parentbb3eee4bb2bf85871330b5300cbbae66a6de22e4 (diff)
parentb23c84b2718871835d01b3d77a0247e99895670a (diff)
downloadmullvadvpn-2bf55fd253abf427ed725d6722349a43d9c14eea.tar.xz
mullvadvpn-2bf55fd253abf427ed725d6722349a43d9c14eea.zip
Merge branch 'wg-remap-ping-error'
-rw-r--r--talpid-core/src/tunnel/mod.rs2
-rw-r--r--talpid-core/src/tunnel/wireguard/mod.rs1
-rw-r--r--talpid-core/src/tunnel_state_machine/connecting_state.rs14
3 files changed, 16 insertions, 1 deletions
diff --git a/talpid-core/src/tunnel/mod.rs b/talpid-core/src/tunnel/mod.rs
index d386fd641c..ddfe0139c8 100644
--- a/talpid-core/src/tunnel/mod.rs
+++ b/talpid-core/src/tunnel/mod.rs
@@ -14,7 +14,7 @@ use talpid_types::net::{openvpn as openvpn_types, GenericTunnelOptions, TunnelPa
pub mod openvpn;
#[cfg(unix)]
-mod wireguard;
+pub mod wireguard;
const OPENVPN_LOG_FILENAME: &str = "openvpn.log";
const WIREGUARD_LOG_FILENAME: &str = "wireguard.log";
diff --git a/talpid-core/src/tunnel/wireguard/mod.rs b/talpid-core/src/tunnel/wireguard/mod.rs
index 23fab152f3..65897d9d23 100644
--- a/talpid-core/src/tunnel/wireguard/mod.rs
+++ b/talpid-core/src/tunnel/wireguard/mod.rs
@@ -1,3 +1,4 @@
+#![allow(missing_docs)]
use self::config::Config;
use super::{TunnelEvent, TunnelMetadata};
use crate::routing;
diff --git a/talpid-core/src/tunnel_state_machine/connecting_state.rs b/talpid-core/src/tunnel_state_machine/connecting_state.rs
index b073ade768..1588648e4e 100644
--- a/talpid-core/src/tunnel_state_machine/connecting_state.rs
+++ b/talpid-core/src/tunnel_state_machine/connecting_state.rs
@@ -345,6 +345,20 @@ impl TunnelState for ConnectingState {
Err(error) => {
let block_reason = match *error.kind() {
tunnel::ErrorKind::EnableIpv6Error => BlockReason::Ipv6Unavailable,
+
+ #[cfg(unix)]
+ tunnel::ErrorKind::WirguardTunnelMonitoringError(ref err) => {
+ match &err {
+ tunnel::wireguard::ErrorKind::PingTimeoutError => {
+ if crate::offline::is_offline() {
+ BlockReason::IsOffline
+ } else {
+ BlockReason::StartTunnelError
+ }
+ }
+ _ => BlockReason::StartTunnelError,
+ }
+ }
_ => BlockReason::StartTunnelError,
};