summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-05-22 21:05:27 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-05-23 10:30:24 +0000
commitae2d8f1da959aa4e1fa7bcd26704401f71087e70 (patch)
tree37c2e00c61479f0fedb2942514e4a799e680d4c8
parent17d2909dc11e7af2628fc160cecbe6169d36db35 (diff)
downloadmullvadvpn-ae2d8f1da959aa4e1fa7bcd26704401f71087e70.tar.xz
mullvadvpn-ae2d8f1da959aa4e1fa7bcd26704401f71087e70.zip
Implement `MullvadDaemon::updateRelaySettings`
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt2
-rw-r--r--mullvad-jni/src/lib.rs19
2 files changed, 21 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt
index b01bccb5a4..6d084e6274 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt
@@ -2,6 +2,7 @@ package net.mullvad.mullvadvpn
import net.mullvad.mullvadvpn.model.AccountData
import net.mullvad.mullvadvpn.model.RelayList
+import net.mullvad.mullvadvpn.model.RelaySettingsUpdate
import net.mullvad.mullvadvpn.model.Settings
class MullvadDaemon {
@@ -14,6 +15,7 @@ class MullvadDaemon {
external fun getRelayLocations(): RelayList
external fun getSettings(): Settings
external fun setAccount(accountToken: String?)
+ external fun updateRelaySettings(update: RelaySettingsUpdate)
private external fun initialize()
}
diff --git a/mullvad-jni/src/lib.rs b/mullvad-jni/src/lib.rs
index b43f0aad0e..99a3041d9a 100644
--- a/mullvad-jni/src/lib.rs
+++ b/mullvad-jni/src/lib.rs
@@ -231,3 +231,22 @@ pub extern "system" fn Java_net_mullvad_mullvadvpn_MullvadDaemon_setAccount(
log::error!("{}", error.display_chain_with_msg("Failed to set account"));
}
}
+
+#[no_mangle]
+#[allow(non_snake_case)]
+pub extern "system" fn Java_net_mullvad_mullvadvpn_MullvadDaemon_updateRelaySettings(
+ env: JNIEnv,
+ _: JObject,
+ relaySettingsUpdate: JObject,
+) {
+ let daemon = DAEMON_INTERFACE.lock();
+
+ let update = FromJava::from_java(&env, relaySettingsUpdate);
+
+ if let Err(error) = daemon.update_relay_settings(update) {
+ log::error!(
+ "{}",
+ error.display_chain_with_msg("Failed to update relay settings")
+ );
+ }
+}