diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-07-25 21:52:21 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-07-29 09:29:53 +0000 |
| commit | 928bd2cf769103929bb3f92e66d8142a58d7c192 (patch) | |
| tree | 509f156d01bb8e20a4bce4871a986214b448ad8d | |
| parent | 3c392d6f4192983148285df7eb2a7ac9bacc1d1c (diff) | |
| download | mullvadvpn-928bd2cf769103929bb3f92e66d8142a58d7c192.tar.xz mullvadvpn-928bd2cf769103929bb3f92e66d8142a58d7c192.zip | |
Handle Wireguard key generation result from daemon
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt | 2 | ||||
| -rw-r--r-- | mullvad-jni/src/lib.rs | 18 |
2 files changed, 7 insertions, 13 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt index 769a2f1ad9..e88355c274 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt @@ -22,7 +22,7 @@ class MullvadDaemon(val vpnService: MullvadVpnService) { external fun connect() external fun disconnect() - external fun generateWireguardKey(): Boolean + external fun generateWireguardKey(): KeygenEvent? external fun getAccountData(accountToken: String): AccountData? external fun getCurrentLocation(): GeoIpLocation? external fun getRelayLocations(): RelayList diff --git a/mullvad-jni/src/lib.rs b/mullvad-jni/src/lib.rs index 284bea94d6..5dec981e5e 100644 --- a/mullvad-jni/src/lib.rs +++ b/mullvad-jni/src/lib.rs @@ -18,7 +18,6 @@ use jni::{ }; use lazy_static::lazy_static; use mullvad_daemon::{logging, version, Daemon, DaemonCommandSender}; -use mullvad_types::wireguard::KeygenEvent; use parking_lot::RwLock; use std::{ collections::HashMap, @@ -244,23 +243,18 @@ pub extern "system" fn Java_net_mullvad_mullvadvpn_MullvadDaemon_disconnect(_: J #[no_mangle] #[allow(non_snake_case)] -pub extern "system" fn Java_net_mullvad_mullvadvpn_MullvadDaemon_generateWireguardKey( - _: JNIEnv, +pub extern "system" fn Java_net_mullvad_mullvadvpn_MullvadDaemon_generateWireguardKey<'env>( + env: JNIEnv<'env>, _: JObject, -) -> jboolean { +) -> JObject<'env> { match DAEMON_INTERFACE.generate_wireguard_key() { - Ok(KeygenEvent::NewKey(_)) => JNI_TRUE, - // TODO: Handle the new result better. - Ok(keygen_failure) => { - log::error!("Failed to generate wireguard key {:?}", keygen_failure); - JNI_FALSE - } + Ok(keygen_event) => keygen_event.into_java(&env), Err(error) => { log::error!( "{}", - error.display_chain_with_msg("Failed to generate wireguard key") + error.display_chain_with_msg("Failed to request to generate wireguard key") ); - JNI_FALSE + JObject::null() } } } |
