diff options
| author | David Lönnhager <david.l@mullvad.net> | 2022-03-31 11:00:56 +0200 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2022-03-31 11:29:18 +0200 |
| commit | 00fd04e646fe9c2ca5ec210c9f15cb773851d13e (patch) | |
| tree | 806f0014ee8c563c4f39ddfae0ccdbc3a775c978 | |
| parent | cbdbbd3800c0d442e7560b347dbe0d3366bf9b18 (diff) | |
| download | mullvadvpn-00fd04e646fe9c2ca5ec210c9f15cb773851d13e.tar.xz mullvadvpn-00fd04e646fe9c2ca5ec210c9f15cb773851d13e.zip | |
Add update_device to Android interface
| -rw-r--r-- | android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadDaemon.kt | 3 | ||||
| -rw-r--r-- | mullvad-jni/src/daemon_interface.rs | 10 | ||||
| -rw-r--r-- | mullvad-jni/src/lib.rs | 17 |
3 files changed, 30 insertions, 0 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadDaemon.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadDaemon.kt index ea66d6b308..2aefe71a91 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadDaemon.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadDaemon.kt @@ -128,6 +128,8 @@ class MullvadDaemon(vpnService: MullvadVpnService) { fun getDevice(): DeviceConfig? = getDevice(daemonInterfaceAddress) + fun updateDevice() = updateDevice(daemonInterfaceAddress) + fun removeDevice(accountToken: String, deviceId: String): RemoveDeviceResult { return removeDevice(daemonInterfaceAddress, accountToken, deviceId) } @@ -215,6 +217,7 @@ class MullvadDaemon(vpnService: MullvadVpnService) { ): List<Device>? private external fun getDevice(daemonInterfaceAddress: Long): DeviceConfig? + private external fun updateDevice(daemonInterfaceAddress: Long) private external fun removeDevice( daemonInterfaceAddress: Long, accountToken: String?, diff --git a/mullvad-jni/src/daemon_interface.rs b/mullvad-jni/src/daemon_interface.rs index 6b4b51f184..ae774ae8ee 100644 --- a/mullvad-jni/src/daemon_interface.rs +++ b/mullvad-jni/src/daemon_interface.rs @@ -222,6 +222,16 @@ impl DaemonInterface { .map_err(Error::from) } + pub fn update_device(&self) -> Result<()> { + let (tx, rx) = oneshot::channel(); + + self.send_command(DaemonCommand::UpdateDevice(tx))?; + + block_on(rx) + .map_err(|_| Error::NoResponse)? + .map_err(Error::from) + } + pub fn list_devices(&self, account_token: String) -> Result<Vec<Device>> { let (tx, rx) = oneshot::channel(); diff --git a/mullvad-jni/src/lib.rs b/mullvad-jni/src/lib.rs index 3837e7d30f..938d73e033 100644 --- a/mullvad-jni/src/lib.rs +++ b/mullvad-jni/src/lib.rs @@ -828,6 +828,23 @@ pub extern "system" fn Java_net_mullvad_mullvadvpn_service_MullvadDaemon_getDevi #[no_mangle] #[allow(non_snake_case)] +pub extern "system" fn Java_net_mullvad_mullvadvpn_service_MullvadDaemon_updateDevice( + _: JNIEnv<'_>, + _: JObject<'_>, + daemon_interface_address: jlong, +) { + if let Some(daemon_interface) = get_daemon_interface(daemon_interface_address) { + if let Err(error) = daemon_interface.update_device() { + log::error!( + "{}", + error.display_chain_with_msg("Failed to update device") + ); + } + } +} + +#[no_mangle] +#[allow(non_snake_case)] pub extern "system" fn Java_net_mullvad_mullvadvpn_service_MullvadDaemon_listDevices<'env>( env: JNIEnv<'env>, _: JObject<'_>, |
