diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-05-06 19:15:57 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-05-11 13:15:51 +0000 |
| commit | c71fb7dda8a21fe57e406147e01c7b0025a82a4e (patch) | |
| tree | 0f22635bcf4a56d81c23adcbd2c09cc96f5d9102 | |
| parent | 6f2d3f4dc6f2058126ab6ecf4ef5e02b9de174f6 (diff) | |
| download | mullvadvpn-c71fb7dda8a21fe57e406147e01c7b0025a82a4e.tar.xz mullvadvpn-c71fb7dda8a21fe57e406147e01c7b0025a82a4e.zip | |
Create `MullvadDaemon.submitVoucher` method
| -rw-r--r-- | android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadDaemon.kt | 9 | ||||
| -rw-r--r-- | mullvad-jni/src/lib.rs | 28 |
2 files changed, 37 insertions, 0 deletions
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadDaemon.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadDaemon.kt index 593139a8a9..fbede31252 100644 --- a/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadDaemon.kt +++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/service/MullvadDaemon.kt @@ -9,6 +9,7 @@ import net.mullvad.mullvadvpn.model.RelayList import net.mullvad.mullvadvpn.model.RelaySettingsUpdate import net.mullvad.mullvadvpn.model.Settings import net.mullvad.mullvadvpn.model.TunnelState +import net.mullvad.mullvadvpn.model.VoucherSubmission import net.mullvad.talpid.util.EventNotifier class MullvadDaemon(val vpnService: MullvadVpnService) { @@ -109,6 +110,10 @@ class MullvadDaemon(val vpnService: MullvadVpnService) { shutdown(daemonInterfaceAddress) } + fun submitVoucher(voucher: String): VoucherSubmission? { + return submitVoucher(daemonInterfaceAddress, voucher) + } + fun updateRelaySettings(update: RelaySettingsUpdate) { updateRelaySettings(daemonInterfaceAddress, update) } @@ -147,6 +152,10 @@ class MullvadDaemon(val vpnService: MullvadVpnService) { private external fun setAutoConnect(daemonInterfaceAddress: Long, alwaysOn: Boolean) private external fun setWireguardMtu(daemonInterfaceAddress: Long, wireguardMtu: Int?) private external fun shutdown(daemonInterfaceAddress: Long) + private external fun submitVoucher( + daemonInterfaceAddress: Long, + voucher: String + ): VoucherSubmission? private external fun updateRelaySettings( daemonInterfaceAddress: Long, update: RelaySettingsUpdate diff --git a/mullvad-jni/src/lib.rs b/mullvad-jni/src/lib.rs index c46c2ba99f..bedd1fa118 100644 --- a/mullvad-jni/src/lib.rs +++ b/mullvad-jni/src/lib.rs @@ -797,6 +797,34 @@ pub extern "system" fn Java_net_mullvad_mullvadvpn_service_MullvadDaemon_shutdow #[no_mangle] #[allow(non_snake_case)] +pub extern "system" fn Java_net_mullvad_mullvadvpn_service_MullvadDaemon_submitVoucher<'env>( + env: JNIEnv<'env>, + _: JObject<'_>, + daemon_interface_address: jlong, + voucher: JString<'_>, +) -> JObject<'env> { + let env = JnixEnv::from(env); + + if let Some(daemon_interface) = get_daemon_interface(daemon_interface_address) { + let voucher = String::from_java(&env, voucher); + + match daemon_interface.submit_voucher(voucher) { + Ok(voucher_submission) => voucher_submission.into_java(&env).forget(), + Err(error) => { + log::error!( + "{}", + error.display_chain_with_msg("Failed to submit voucher") + ); + JObject::null() + } + } + } else { + JObject::null() + } +} + +#[no_mangle] +#[allow(non_snake_case)] pub extern "system" fn Java_net_mullvad_mullvadvpn_service_MullvadDaemon_updateRelaySettings( env: JNIEnv<'_>, _: JObject<'_>, |
