summaryrefslogtreecommitdiffhomepage
path: root/talpid-core/src
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2024-01-29 14:52:28 +0100
committerDavid Lönnhager <david.l@mullvad.net>2024-01-31 11:02:51 +0100
commitd42c51875bbdd4eb609a5b25ceb2a2691cc94fab (patch)
tree8f5a2c92e37e00dc3c1d4273ced0514c595f2656 /talpid-core/src
parent997fb7f6847d915d29e363083b6593cbd7da5ba4 (diff)
downloadmullvadvpn-d42c51875bbdd4eb609a5b25ceb2a2691cc94fab.tar.xz
mullvadvpn-d42c51875bbdd4eb609a5b25ceb2a2691cc94fab.zip
Add tunnel creation error on Windows
Diffstat (limited to 'talpid-core/src')
-rw-r--r--talpid-core/src/tunnel_state_machine/connecting_state.rs12
1 files changed, 10 insertions, 2 deletions
diff --git a/talpid-core/src/tunnel_state_machine/connecting_state.rs b/talpid-core/src/tunnel_state_machine/connecting_state.rs
index 1a000c6136..3b0afd8abf 100644
--- a/talpid-core/src/tunnel_state_machine/connecting_state.rs
+++ b/talpid-core/src/tunnel_state_machine/connecting_state.rs
@@ -278,6 +278,14 @@ impl ConnectingState {
),
),
) => ErrorStateCause::InvalidDnsServers(addresses),
+ #[cfg(target_os = "windows")]
+ error => match error.get_tunnel_device_error() {
+ Some(error) => ErrorStateCause::CreateTunnelDevice {
+ os_error: error.raw_os_error(),
+ },
+ None => ErrorStateCause::StartTunnelError,
+ },
+ #[cfg(not(target_os = "windows"))]
_ => ErrorStateCause::StartTunnelError,
};
Some(block_reason)
@@ -581,8 +589,8 @@ impl ConnectingState {
#[cfg_attr(not(target_os = "windows"), allow(unused_variables))]
fn should_retry(error: &tunnel::Error, retry_attempt: u32) -> bool {
#[cfg(target_os = "windows")]
- if error.get_tunnel_device_error().is_some() && retry_attempt < MAX_ATTEMPT_CREATE_TUN {
- return true;
+ if error.get_tunnel_device_error().is_some() {
+ return retry_attempt < MAX_ATTEMPT_CREATE_TUN;
}
error.is_recoverable()
}