summaryrefslogtreecommitdiffhomepage
path: root/talpid-wireguard/src/wireguard_kernel
diff options
context:
space:
mode:
authorMarkus Pettersson <markus.pettersson@mullvad.net>2025-10-24 13:47:14 +0200
committerMarkus Pettersson <markus.pettersson@mullvad.net>2025-10-24 14:11:11 +0200
commit2351c1c5e827004e28db637ebcb27f7fa1448826 (patch)
tree4a79451988a04b6d2a584549708d6538efe786e2 /talpid-wireguard/src/wireguard_kernel
parent4b6c2abefdf8639d138aac61da9675a5d6ce4ebf (diff)
downloadmullvadvpn-2351c1c5e827004e28db637ebcb27f7fa1448826.tar.xz
mullvadvpn-2351c1c5e827004e28db637ebcb27f7fa1448826.zip
Integrate GotaTun cleanly
Refactor `trait Tunnel` and factor `start_daita` into `set_config`. Co-authored-by: Joakim Hulthe <joakim.hulthe@mullvad.net>
Diffstat (limited to 'talpid-wireguard/src/wireguard_kernel')
-rw-r--r--talpid-wireguard/src/wireguard_kernel/netlink_tunnel.rs11
-rw-r--r--talpid-wireguard/src/wireguard_kernel/nm_tunnel.rs11
2 files changed, 12 insertions, 10 deletions
diff --git a/talpid-wireguard/src/wireguard_kernel/netlink_tunnel.rs b/talpid-wireguard/src/wireguard_kernel/netlink_tunnel.rs
index b7735b68b1..407b4cdd25 100644
--- a/talpid-wireguard/src/wireguard_kernel/netlink_tunnel.rs
+++ b/talpid-wireguard/src/wireguard_kernel/netlink_tunnel.rs
@@ -120,10 +120,16 @@ impl Tunnel for NetlinkTunnel {
fn set_config(
&mut self,
config: Config,
+ daita: Option<DaitaSettings>,
) -> Pin<Box<dyn Future<Output = std::result::Result<(), TunnelError>> + Send + 'static>> {
let mut wg = self.netlink_connections.wg_handle.clone();
let interface_index = self.interface_index;
Box::pin(async move {
+ if daita.is_some() {
+ // Outright fail to start - this tunnel type does not support DAITA.
+ return Err(TunnelError::DaitaNotSupported);
+ }
+
wg.set_config(interface_index, &config)
.await
.map_err(|err| {
@@ -132,9 +138,4 @@ impl Tunnel for NetlinkTunnel {
})
})
}
-
- /// Outright fail to start - this tunnel type does not support DAITA.
- fn start_daita(&mut self, _: DaitaSettings) -> std::result::Result<(), TunnelError> {
- Err(TunnelError::DaitaNotSupported)
- }
}
diff --git a/talpid-wireguard/src/wireguard_kernel/nm_tunnel.rs b/talpid-wireguard/src/wireguard_kernel/nm_tunnel.rs
index 46a394a59d..c35503fa82 100644
--- a/talpid-wireguard/src/wireguard_kernel/nm_tunnel.rs
+++ b/talpid-wireguard/src/wireguard_kernel/nm_tunnel.rs
@@ -97,10 +97,16 @@ impl Tunnel for NetworkManagerTunnel {
fn set_config(
&mut self,
config: Config,
+ daita: Option<DaitaSettings>,
) -> Pin<Box<dyn Future<Output = std::result::Result<(), TunnelError>> + Send>> {
let interface_name = self.interface_name.clone();
let mut wg = self.netlink_connections.wg_handle.clone();
Box::pin(async move {
+ if daita.is_some() {
+ // Outright fail to start - this tunnel type does not support DAITA.
+ return Err(TunnelError::DaitaNotSupported);
+ }
+
let index = iface_index(&interface_name).map_err(|err| {
log::error!("Failed to fetch WireGuard device index: {}", err);
TunnelError::SetConfigError
@@ -111,11 +117,6 @@ impl Tunnel for NetworkManagerTunnel {
})
})
}
-
- /// Outright fail to start - this tunnel type does not support DAITA.
- fn start_daita(&mut self, _: DaitaSettings) -> std::result::Result<(), TunnelError> {
- Err(TunnelError::DaitaNotSupported)
- }
}
fn convert_config_to_dbus(config: &Config) -> DeviceConfig {