summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Göransson <david.goransson@mullvad.net>2025-01-23 17:38:43 +0100
committerDavid Göransson <david.goransson@mullvad.net>2025-01-24 13:01:13 +0100
commit3b3c587645fcbd8b0ff98c2be5658b0c0025cd4f (patch)
treeb253343695f2a1fa01a9c1865ad43029f0732130
parenta1571dfba74d2302571a014020dc0048100832eb (diff)
downloadmullvadvpn-3b3c587645fcbd8b0ff98c2be5658b0c0025cd4f.tar.xz
mullvadvpn-3b3c587645fcbd8b0ff98c2be5658b0c0025cd4f.zip
Ensure tunnel is running after updating wireguard config
-rw-r--r--talpid-wireguard/src/wireguard_go/mod.rs9
1 files changed, 7 insertions, 2 deletions
diff --git a/talpid-wireguard/src/wireguard_go/mod.rs b/talpid-wireguard/src/wireguard_go/mod.rs
index 418462e7d1..2bfd8ef987 100644
--- a/talpid-wireguard/src/wireguard_go/mod.rs
+++ b/talpid-wireguard/src/wireguard_go/mod.rs
@@ -137,11 +137,16 @@ impl WgGoTunnel {
}
WgGoTunnel::Singlehop(mut state) => {
state.set_config(config.clone())?;
- Ok(WgGoTunnel::Singlehop(state))
+ // HACK: Check if the tunnel is working by sending a ping in the tunnel.
+ let new_state = WgGoTunnel::Singlehop(state);
+ new_state.ensure_tunnel_is_running().await?;
+ Ok(new_state)
}
WgGoTunnel::Multihop(mut state) => {
state.set_config(config.clone())?;
- Ok(WgGoTunnel::Multihop(state))
+ let new_state = WgGoTunnel::Multihop(state);
+ new_state.ensure_tunnel_is_running().await?;
+ Ok(new_state)
}
}
}