summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2021-03-18 11:12:48 +0100
committerDavid Lönnhager <david.l@mullvad.net>2021-03-18 11:12:48 +0100
commit35c5e29341c15f70e358b54c0e536255edaa654e (patch)
tree8b7171adbceb1e08d43ac84d62f7a45763927a8c
parentd3502c1f820f2fe5093b06405ac3a1309e304187 (diff)
parentf9c8da56193b11b4034f7cdf77507661a16c95b2 (diff)
downloadmullvadvpn-35c5e29341c15f70e358b54c0e536255edaa654e.tar.xz
mullvadvpn-35c5e29341c15f70e358b54c0e536255edaa654e.zip
Merge branch 'refactor-rotation-interval'
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/model/TunnelOptions.kt2
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/model/WireguardTunnelOptions.kt5
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt2
-rw-r--r--mullvad-daemon/src/lib.rs2
-rw-r--r--mullvad-daemon/src/management_interface.rs2
-rw-r--r--mullvad-daemon/src/settings.rs3
-rw-r--r--mullvad-types/src/custom_tunnel.rs2
-rw-r--r--mullvad-types/src/settings/mod.rs13
-rw-r--r--mullvad-types/src/wireguard.rs14
-rw-r--r--talpid-types/src/net/wireguard.rs5
10 files changed, 34 insertions, 16 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/TunnelOptions.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/model/TunnelOptions.kt
index 7e3bdef2b3..1a960e1396 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/TunnelOptions.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/model/TunnelOptions.kt
@@ -1,5 +1,3 @@
package net.mullvad.mullvadvpn.model
-import net.mullvad.talpid.net.wireguard.TunnelOptions as WireguardTunnelOptions
-
data class TunnelOptions(val wireguard: WireguardTunnelOptions, val dnsOptions: DnsOptions)
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/model/WireguardTunnelOptions.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/model/WireguardTunnelOptions.kt
new file mode 100644
index 0000000000..f9b7b314d5
--- /dev/null
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/model/WireguardTunnelOptions.kt
@@ -0,0 +1,5 @@
+package net.mullvad.mullvadvpn.model
+
+import net.mullvad.talpid.net.wireguard.TunnelOptions as TalpidWireguardTunnelOptions
+
+data class WireguardTunnelOptions(val options: TalpidWireguardTunnelOptions)
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt
index 4f4210be70..8e241ace49 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/ui/AdvancedFragment.kt
@@ -118,7 +118,7 @@ class AdvancedFragment : ServiceDependentFragment(OnNoService.GoBack) {
private fun updateUi(settings: Settings) {
jobTracker.newUiJob("updateUi") {
if (!wireguardMtuInput.hasFocus) {
- wireguardMtuInput.value = settings.tunnelOptions.wireguard.mtu
+ wireguardMtuInput.value = settings.tunnelOptions.wireguard.options.mtu
}
}
}
diff --git a/mullvad-daemon/src/lib.rs b/mullvad-daemon/src/lib.rs
index 7f2358b048..dd297e9802 100644
--- a/mullvad-daemon/src/lib.rs
+++ b/mullvad-daemon/src/lib.rs
@@ -1063,7 +1063,7 @@ where
ipv4_gateway,
ipv6_gateway: Some(ipv6_gateway),
},
- options: tunnel_options.wireguard,
+ options: tunnel_options.wireguard.options,
generic_options: tunnel_options.generic,
}
.into())
diff --git a/mullvad-daemon/src/management_interface.rs b/mullvad-daemon/src/management_interface.rs
index 732e648199..0cd1ddd1cf 100644
--- a/mullvad-daemon/src/management_interface.rs
+++ b/mullvad-daemon/src/management_interface.rs
@@ -1225,7 +1225,7 @@ fn convert_tunnel_options(options: &TunnelOptions) -> types::TunnelOptions {
mssfix: u32::from(options.openvpn.mssfix.unwrap_or_default()),
}),
wireguard: Some(types::tunnel_options::WireguardOptions {
- mtu: u32::from(options.wireguard.mtu.unwrap_or_default()),
+ mtu: u32::from(options.wireguard.options.mtu.unwrap_or_default()),
automatic_rotation: options
.wireguard
.automatic_rotation
diff --git a/mullvad-daemon/src/settings.rs b/mullvad-daemon/src/settings.rs
index 1be6c1fc69..0888121363 100644
--- a/mullvad-daemon/src/settings.rs
+++ b/mullvad-daemon/src/settings.rs
@@ -217,7 +217,8 @@ impl SettingsPersister {
}
pub fn set_wireguard_mtu(&mut self, mtu: Option<u16>) -> Result<bool, Error> {
- let should_save = Self::update_field(&mut self.settings.tunnel_options.wireguard.mtu, mtu);
+ let should_save =
+ Self::update_field(&mut self.settings.tunnel_options.wireguard.options.mtu, mtu);
self.update(should_save)
}
diff --git a/mullvad-types/src/custom_tunnel.rs b/mullvad-types/src/custom_tunnel.rs
index b3cae97347..5e7d7d4672 100644
--- a/mullvad-types/src/custom_tunnel.rs
+++ b/mullvad-types/src/custom_tunnel.rs
@@ -60,7 +60,7 @@ impl CustomTunnelEndpoint {
.into(),
ConnectionConfig::Wireguard(connection) => wireguard::TunnelParameters {
connection,
- options: tunnel_options.wireguard.clone(),
+ options: tunnel_options.wireguard.options.clone(),
generic_options: tunnel_options.generic.clone(),
}
.into(),
diff --git a/mullvad-types/src/settings/mod.rs b/mullvad-types/src/settings/mod.rs
index dfb2459e77..c589d1660a 100644
--- a/mullvad-types/src/settings/mod.rs
+++ b/mullvad-types/src/settings/mod.rs
@@ -1,6 +1,9 @@
-use crate::relay_constraints::{
- BridgeConstraints, BridgeSettings, BridgeState, Constraint, LocationConstraint,
- RelayConstraints, RelaySettings, RelaySettingsUpdate,
+use crate::{
+ relay_constraints::{
+ BridgeConstraints, BridgeSettings, BridgeState, Constraint, LocationConstraint,
+ RelayConstraints, RelaySettings, RelaySettingsUpdate,
+ },
+ wireguard,
};
#[cfg(target_os = "android")]
use jnix::{FromJava, IntoJava};
@@ -8,7 +11,7 @@ use log::{debug, info};
use serde::{Deserialize, Serialize};
use serde_json;
use std::net::IpAddr;
-use talpid_types::net::{openvpn, wireguard, GenericTunnelOptions};
+use talpid_types::net::{self, openvpn, GenericTunnelOptions};
mod migrations;
@@ -186,7 +189,7 @@ impl Default for TunnelOptions {
TunnelOptions {
openvpn: openvpn::TunnelOptions::default(),
wireguard: wireguard::TunnelOptions {
- mtu: None,
+ options: net::wireguard::TunnelOptions::default(),
automatic_rotation: None,
},
generic: GenericTunnelOptions {
diff --git a/mullvad-types/src/wireguard.rs b/mullvad-types/src/wireguard.rs
index aabe7808ef..32d152ec4d 100644
--- a/mullvad-types/src/wireguard.rs
+++ b/mullvad-types/src/wireguard.rs
@@ -24,6 +24,20 @@ impl WireguardData {
}
}
+#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
+#[cfg_attr(target_os = "android", derive(IntoJava))]
+#[cfg_attr(
+ target_os = "android",
+ jnix(class_name = "net.mullvad.mullvadvpn.model.WireguardTunnelOptions")
+)]
+pub struct TunnelOptions {
+ #[serde(flatten)]
+ pub options: wireguard::TunnelOptions,
+ /// Interval used for automatic key rotation, in hours
+ #[cfg_attr(target_os = "android", jnix(skip))]
+ pub automatic_rotation: Option<u32>,
+}
+
/// Represents a published public key
#[derive(Serialize, Deserialize, Clone, Debug)]
#[cfg_attr(target_os = "android", derive(IntoJava))]
diff --git a/talpid-types/src/net/wireguard.rs b/talpid-types/src/net/wireguard.rs
index 62441a369c..731d93c79e 100644
--- a/talpid-types/src/net/wireguard.rs
+++ b/talpid-types/src/net/wireguard.rs
@@ -57,7 +57,7 @@ pub struct TunnelConfig {
}
/// Options in [`TunnelParameters`] that apply to any WireGuard connection.
-#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
+#[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(target_os = "android", derive(IntoJava))]
#[cfg_attr(
target_os = "android",
@@ -70,9 +70,6 @@ pub struct TunnelOptions {
jnix(map = "|maybe_mtu| maybe_mtu.map(|mtu| mtu as i32)")
)]
pub mtu: Option<u16>,
- /// Interval used for automatic key rotation, in hours
- #[cfg_attr(target_os = "android", jnix(skip))]
- pub automatic_rotation: Option<u32>,
}
/// Wireguard x25519 private key