diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-08-01 17:15:16 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-08-02 13:46:52 +0000 |
| commit | 34e1978da07523121c7890e312ab4c13e4eb976b (patch) | |
| tree | fa572587546127a0eb93f0a5ee1492de74620d5a | |
| parent | a16dd1455d3ed87cd196fc718d2d8b1c53ba021e (diff) | |
| download | mullvadvpn-34e1978da07523121c7890e312ab4c13e4eb976b.tar.xz mullvadvpn-34e1978da07523121c7890e312ab4c13e4eb976b.zip | |
Implement `IntoJava` for `Endpoint`
| -rw-r--r-- | mullvad-jni/src/into_java.rs | 23 | ||||
| -rw-r--r-- | mullvad-jni/src/lib.rs | 1 |
2 files changed, 23 insertions, 1 deletions
diff --git a/mullvad-jni/src/into_java.rs b/mullvad-jni/src/into_java.rs index 9998982532..045f7e6328 100644 --- a/mullvad-jni/src/into_java.rs +++ b/mullvad-jni/src/into_java.rs @@ -23,7 +23,7 @@ use std::{ }; use talpid_core::tunnel::tun_provider::TunConfig; use talpid_types::{ - net::{wireguard::PublicKey, TransportProtocol}, + net::{wireguard::PublicKey, Endpoint, TransportProtocol}, tunnel::{ActionAfterDisconnect, BlockReason}, }; @@ -284,6 +284,27 @@ impl<'env> IntoJava<'env> for TransportProtocol { } } +impl<'env> IntoJava<'env> for Endpoint { + type JavaType = JObject<'env>; + + fn into_java(self, env: &JNIEnv<'env>) -> Self::JavaType { + let class = get_class("net/mullvad/mullvadvpn/model/Endpoint"); + let address = env.auto_local(self.address.into_java(env)); + let protocol = env.auto_local(self.protocol.into_java(env)); + let parameters = [ + JValue::Object(address.as_obj()), + JValue::Object(protocol.as_obj()), + ]; + + env.new_object( + &class, + "(Ljava/net/InetSocketAddress;Lnet/mullvad/mullvadvpn/model/TransportProtocol;)V", + ¶meters, + ) + .expect("Failed to create Endpoint 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 0d69c2518b..05f77c40f7 100644 --- a/mullvad-jni/src/lib.rs +++ b/mullvad-jni/src/lib.rs @@ -49,6 +49,7 @@ const CLASSES_TO_LOAD: &[&str] = &[ "net/mullvad/mullvadvpn/model/AppVersionInfo", "net/mullvad/mullvadvpn/model/Constraint$Any", "net/mullvad/mullvadvpn/model/Constraint$Only", + "net/mullvad/mullvadvpn/model/Endpoint", "net/mullvad/mullvadvpn/model/GeoIpLocation", "net/mullvad/mullvadvpn/model/InetNetwork", "net/mullvad/mullvadvpn/model/KeygenEvent$NewKey", |
