summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--mullvad-jni/src/into_java.rs17
-rw-r--r--mullvad-jni/src/lib.rs2
2 files changed, 18 insertions, 1 deletions
diff --git a/mullvad-jni/src/into_java.rs b/mullvad-jni/src/into_java.rs
index fe668f1580..e51e9e036e 100644
--- a/mullvad-jni/src/into_java.rs
+++ b/mullvad-jni/src/into_java.rs
@@ -20,7 +20,7 @@ use mullvad_types::{
use std::{fmt::Debug, net::IpAddr};
use talpid_core::tunnel::tun_provider::TunConfig;
use talpid_types::{
- net::wireguard::PublicKey,
+ net::{wireguard::PublicKey, TransportProtocol},
tunnel::{ActionAfterDisconnect, BlockReason},
};
@@ -252,6 +252,21 @@ impl<'env> IntoJava<'env> for TunConfig {
}
}
+impl<'env> IntoJava<'env> for TransportProtocol {
+ type JavaType = JObject<'env>;
+
+ fn into_java(self, env: &JNIEnv<'env>) -> Self::JavaType {
+ let class_name = match self {
+ TransportProtocol::Tcp => "net/mullvad/mullvadvpn/model/TransportProtocol$Tcp",
+ TransportProtocol::Udp => "net/mullvad/mullvadvpn/model/TransportProtocol$Udp",
+ };
+ let class = get_class(class_name);
+
+ env.new_object(&class, "()V", &[])
+ .expect("Failed to create TransportProtocol sub-class variant Java object")
+ }
+}
+
impl<'env> IntoJava<'env> for GeoIpLocation {
type JavaType = JObject<'env>;
diff --git a/mullvad-jni/src/lib.rs b/mullvad-jni/src/lib.rs
index 96d8c8ba55..baeb4875dc 100644
--- a/mullvad-jni/src/lib.rs
+++ b/mullvad-jni/src/lib.rs
@@ -66,6 +66,8 @@ 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/TransportProtocol$Tcp",
+ "net/mullvad/mullvadvpn/model/TransportProtocol$Udp",
"net/mullvad/mullvadvpn/model/TunConfig",
"net/mullvad/mullvadvpn/model/TunnelState$Blocked",
"net/mullvad/mullvadvpn/model/TunnelState$Connected",