diff options
| author | Markus Pettersson <markus.pettersson@mullvad.net> | 2025-10-24 13:47:14 +0200 |
|---|---|---|
| committer | Markus Pettersson <markus.pettersson@mullvad.net> | 2025-10-24 14:11:11 +0200 |
| commit | 2351c1c5e827004e28db637ebcb27f7fa1448826 (patch) | |
| tree | 4a79451988a04b6d2a584549708d6538efe786e2 /talpid-wireguard/src/wireguard_kernel | |
| parent | 4b6c2abefdf8639d138aac61da9675a5d6ce4ebf (diff) | |
| download | mullvadvpn-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.rs | 11 | ||||
| -rw-r--r-- | talpid-wireguard/src/wireguard_kernel/nm_tunnel.rs | 11 |
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 { |
