summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-03-20 19:49:06 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-03-30 16:46:26 +0000
commit0d8a723dac68140d96ed85ce4c6ad28eb92a9d2f (patch)
treeadda7eb20ef6e2238ffc7ab9fb4990e115febb43
parent258b0208c440b71cd44bdcea8836ffaae1048a55 (diff)
downloadmullvadvpn-0d8a723dac68140d96ed85ce4c6ad28eb92a9d2f.tar.xz
mullvadvpn-0d8a723dac68140d96ed85ce4c6ad28eb92a9d2f.zip
Implement `MullvadDaemon.setWireguardMtu` method
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadDaemon.kt5
-rw-r--r--mullvad-jni/src/lib.rs22
2 files changed, 27 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadDaemon.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadDaemon.kt
index 65d123e31a..60dce6ff10 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadDaemon.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadDaemon.kt
@@ -97,6 +97,10 @@ class MullvadDaemon(val vpnService: MullvadVpnService) {
setAutoConnect(daemonInterfaceAddress, autoConnect)
}
+ fun setWireguardMtu(wireguardMtu: Int?) {
+ setWireguardMtu(daemonInterfaceAddress, wireguardMtu)
+ }
+
fun shutdown() {
shutdown(daemonInterfaceAddress)
}
@@ -132,6 +136,7 @@ class MullvadDaemon(val vpnService: MullvadVpnService) {
private external fun setAccount(daemonInterfaceAddress: Long, accountToken: String?)
private external fun setAllowLan(daemonInterfaceAddress: Long, allowLan: Boolean)
private external fun setAutoConnect(daemonInterfaceAddress: Long, alwaysOn: Boolean)
+ private external fun setWireguardMtu(daemonInterfaceAddress: Long, wireguardMtu: Int?)
private external fun shutdown(daemonInterfaceAddress: Long)
private external fun updateRelaySettings(
daemonInterfaceAddress: Long,
diff --git a/mullvad-jni/src/lib.rs b/mullvad-jni/src/lib.rs
index d26deeb2af..a95b4ae308 100644
--- a/mullvad-jni/src/lib.rs
+++ b/mullvad-jni/src/lib.rs
@@ -737,6 +737,28 @@ pub extern "system" fn Java_net_mullvad_mullvadvpn_service_MullvadDaemon_setAuto
#[no_mangle]
#[allow(non_snake_case)]
+pub extern "system" fn Java_net_mullvad_mullvadvpn_service_MullvadDaemon_setWireguardMtu(
+ env: JNIEnv<'_>,
+ _: JObject<'_>,
+ daemon_interface_address: jlong,
+ wireguard_mtu: JObject<'_>,
+) {
+ let env = JnixEnv::from(env);
+
+ if let Some(daemon_interface) = get_daemon_interface(daemon_interface_address) {
+ let wireguard_mtu = Option::<i32>::from_java(&env, wireguard_mtu).map(|value| value as u16);
+
+ if let Err(error) = daemon_interface.set_wireguard_mtu(wireguard_mtu) {
+ log::error!(
+ "{}",
+ error.display_chain_with_msg("Failed to set WireGuard MTU")
+ );
+ }
+ }
+}
+
+#[no_mangle]
+#[allow(non_snake_case)]
pub extern "system" fn Java_net_mullvad_mullvadvpn_service_MullvadDaemon_shutdown(
_: JNIEnv<'_>,
_: JObject<'_>,