summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--mullvad-jni/src/daemon_interface.rs11
-rw-r--r--mullvad-jni/src/lib.rs20
2 files changed, 31 insertions, 0 deletions
diff --git a/mullvad-jni/src/daemon_interface.rs b/mullvad-jni/src/daemon_interface.rs
index 2da8ffecb7..97580c22d4 100644
--- a/mullvad-jni/src/daemon_interface.rs
+++ b/mullvad-jni/src/daemon_interface.rs
@@ -88,6 +88,17 @@ impl DaemonInterface {
.map_err(Error::RpcError)
}
+ pub fn get_www_auth_token(&self) -> Result<String> {
+ let (tx, rx) = oneshot::channel();
+
+ self.send_command(ManagementCommand::GetWwwAuthToken(tx))?;
+
+ rx.wait()
+ .map_err(|_| Error::NoResponse)?
+ .wait()
+ .map_err(Error::RpcError)
+ }
+
pub fn get_current_location(&self) -> Result<Option<GeoIpLocation>> {
let (tx, rx) = oneshot::channel();
diff --git a/mullvad-jni/src/lib.rs b/mullvad-jni/src/lib.rs
index 7c9d3ba50a..bcce35d6b3 100644
--- a/mullvad-jni/src/lib.rs
+++ b/mullvad-jni/src/lib.rs
@@ -328,6 +328,26 @@ 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_getWwwAuthToken<'env, 'this>(
+ env: JNIEnv<'env>,
+ _: JObject<'this>,
+) -> JString<'env> {
+ match DAEMON_INTERFACE.get_www_auth_token() {
+ Ok(token) => {
+ token.into_java(&env)
+ },
+ Err(err) => {
+ log::error!(
+ "{}",
+ err.display_chain_with_msg("Failed to get WWW auth token")
+ );
+ String::new().into_java(&env)
+ }
+ }
+}
+
+#[no_mangle]
+#[allow(non_snake_case)]
pub extern "system" fn Java_net_mullvad_mullvadvpn_MullvadDaemon_getCurrentLocation<'env, 'this>(
env: JNIEnv<'env>,
_: JObject<'this>,