summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--mullvad-jni/src/into_java.rs14
-rw-r--r--mullvad-jni/src/lib.rs1
2 files changed, 15 insertions, 0 deletions
diff --git a/mullvad-jni/src/into_java.rs b/mullvad-jni/src/into_java.rs
index ba88840715..1ab7cd54e6 100644
--- a/mullvad-jni/src/into_java.rs
+++ b/mullvad-jni/src/into_java.rs
@@ -14,6 +14,7 @@ use mullvad_types::{
CustomTunnelEndpoint,
};
use std::{fmt::Debug, net::IpAddr};
+use talpid_core::tunnel::tun_provider::TunConfig;
use talpid_types::{net::wireguard::PublicKey, tunnel::TunnelStateTransition};
pub trait IntoJava<'env> {
@@ -189,6 +190,19 @@ impl<'env> IntoJava<'env> for AccountData {
}
}
+impl<'env> IntoJava<'env> for TunConfig {
+ type JavaType = JObject<'env>;
+
+ fn into_java(self, env: &JNIEnv<'env>) -> Self::JavaType {
+ let class = get_class("net/mullvad/mullvadvpn/model/TunConfig");
+ let addresses = env.auto_local(self.addresses.into_java(env));
+ let parameters = [JValue::Object(addresses.as_obj())];
+
+ env.new_object(&class, "(Ljava/util/List;)V", &parameters)
+ .expect("Failed to create TunConfig Java object")
+ }
+}
+
impl<'env> IntoJava<'env> for RelayList {
type JavaType = JObject<'env>;
diff --git a/mullvad-jni/src/lib.rs b/mullvad-jni/src/lib.rs
index 6a0f83fb60..6a54b1cbae 100644
--- a/mullvad-jni/src/lib.rs
+++ b/mullvad-jni/src/lib.rs
@@ -44,6 +44,7 @@ const CLASSES_TO_LOAD: &[&str] = &[
"net/mullvad/mullvadvpn/model/RelaySettingsUpdate$CustomTunnelEndpoint",
"net/mullvad/mullvadvpn/model/RelaySettingsUpdate$RelayConstraintsUpdate",
"net/mullvad/mullvadvpn/model/Settings",
+ "net/mullvad/mullvadvpn/model/TunConfig",
"net/mullvad/mullvadvpn/model/TunnelStateTransition$Blocked",
"net/mullvad/mullvadvpn/model/TunnelStateTransition$Connected",
"net/mullvad/mullvadvpn/model/TunnelStateTransition$Connecting",