summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-05-21 19:37:01 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-05-22 19:55:46 +0000
commitf0f8aef5c73ff53aa290a9d928030122a3bb3669 (patch)
tree71f3b4ea3bc258bdd278a586e517897405edbc16
parentefbec6df289fb0196a0cbea00861170952a18cac (diff)
downloadmullvadvpn-f0f8aef5c73ff53aa290a9d928030122a3bb3669.tar.xz
mullvadvpn-f0f8aef5c73ff53aa290a9d928030122a3bb3669.zip
Implement `MullvadDaemon::setAccount`
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt1
-rw-r--r--mullvad-jni/src/lib.rs16
2 files changed, 17 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 c7025ea644..54bc02795c 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt
@@ -9,6 +9,7 @@ class MullvadDaemon {
}
external fun getAccountData(accountToken: String): AccountData?
+ external fun setAccount(accountToken: String?)
private external fun initialize()
}
diff --git a/mullvad-jni/src/lib.rs b/mullvad-jni/src/lib.rs
index 35d3825dcf..4c849b97ad 100644
--- a/mullvad-jni/src/lib.rs
+++ b/mullvad-jni/src/lib.rs
@@ -162,3 +162,19 @@ pub extern "system" fn Java_net_mullvad_mullvadvpn_MullvadDaemon_getAccountData<
}
}
}
+
+#[no_mangle]
+#[allow(non_snake_case)]
+pub extern "system" fn Java_net_mullvad_mullvadvpn_MullvadDaemon_setAccount(
+ env: JNIEnv,
+ _: JObject,
+ accountToken: JString,
+) {
+ let daemon = DAEMON_INTERFACE.lock();
+
+ let account = <Option<String> as FromJava>::from_java(&env, accountToken);
+
+ if let Err(error) = daemon.set_account(account) {
+ log::error!("{}", error.display_chain_with_msg("Failed to set account"));
+ }
+}