summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-05-23 13:39:26 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-05-23 13:39:26 +0000
commitf0d92e69014972112ab1ae6e99f0fea2be9d8167 (patch)
tree00ae9d3a3624e05932103d7781498f1f6424c8b4
parentb82c5d4b774a4322199c1fcc14334d6d214e3e03 (diff)
downloadmullvadvpn-f0d92e69014972112ab1ae6e99f0fea2be9d8167.tar.xz
mullvadvpn-f0d92e69014972112ab1ae6e99f0fea2be9d8167.zip
Implement `MullvadDaemon::disconnect`
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt1
-rw-r--r--mullvad-jni/src/lib.rs13
2 files changed, 14 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 4c640c9e04..e95a761ba5 100644
--- a/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt
@@ -12,6 +12,7 @@ class MullvadDaemon {
}
external fun connect()
+ external fun disconnect()
external fun getAccountData(accountToken: String): AccountData?
external fun getRelayLocations(): RelayList
external fun getSettings(): Settings
diff --git a/mullvad-jni/src/lib.rs b/mullvad-jni/src/lib.rs
index 4f261f8c51..d5708c9a0a 100644
--- a/mullvad-jni/src/lib.rs
+++ b/mullvad-jni/src/lib.rs
@@ -173,6 +173,19 @@ pub extern "system" fn Java_net_mullvad_mullvadvpn_MullvadDaemon_connect(_: JNIE
#[no_mangle]
#[allow(non_snake_case)]
+pub extern "system" fn Java_net_mullvad_mullvadvpn_MullvadDaemon_disconnect(_: JNIEnv, _: JObject) {
+ let daemon = DAEMON_INTERFACE.lock();
+
+ if let Err(error) = daemon.disconnect() {
+ log::error!(
+ "{}",
+ error.display_chain_with_msg("Failed to request daemon to disconnect")
+ );
+ }
+}
+
+#[no_mangle]
+#[allow(non_snake_case)]
pub extern "system" fn Java_net_mullvad_mullvadvpn_MullvadDaemon_getAccountData<'env, 'this>(
env: JNIEnv<'env>,
_: JObject<'this>,