summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-11-22 14:22:14 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-11-22 15:16:54 +0000
commit5166c453faa029b3a960cc27b56b399d3b9e37fd (patch)
tree269d8c520b7602554c7e5769cc278b0a8efaffda
parentfe5ee8de5d9fa75c511e1706b447fe8e8ec13972 (diff)
downloadmullvadvpn-5166c453faa029b3a960cc27b56b399d3b9e37fd.tar.xz
mullvadvpn-5166c453faa029b3a960cc27b56b399d3b9e37fd.zip
Create `InetNetwork` conversion helper type
-rw-r--r--Cargo.lock1
-rw-r--r--talpid-core/Cargo.toml4
-rw-r--r--talpid-core/src/tunnel/tun_provider/mod.rs20
3 files changed, 25 insertions, 0 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 19d36be382..5167daf231 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2429,6 +2429,7 @@ dependencies = [
"futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
"hex 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"ipnetwork 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "jnix 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"jsonrpc-core 8.0.2 (git+https://github.com/mullvad/jsonrpc?branch=mullvad-fork)",
"jsonrpc-macros 8.0.1 (git+https://github.com/mullvad/jsonrpc?branch=mullvad-fork)",
"lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
diff --git a/talpid-core/Cargo.toml b/talpid-core/Cargo.toml
index 2695ca0f57..a91c71d843 100644
--- a/talpid-core/Cargo.toml
+++ b/talpid-core/Cargo.toml
@@ -37,6 +37,10 @@ tokio-executor = "0.1"
tokio-io = "0.1"
+[target.'cfg(target_os = "android")'.dependencies]
+jnix = { version = "0.1", features = ["derive"] }
+
+
[target.'cfg(target_os = "linux")'.dependencies]
dbus = "0.6"
failure = "0.1"
diff --git a/talpid-core/src/tunnel/tun_provider/mod.rs b/talpid-core/src/tunnel/tun_provider/mod.rs
index 16c9c3f17c..68b688aa74 100644
--- a/talpid-core/src/tunnel/tun_provider/mod.rs
+++ b/talpid-core/src/tunnel/tun_provider/mod.rs
@@ -1,5 +1,7 @@
use cfg_if::cfg_if;
use ipnetwork::IpNetwork;
+#[cfg(target_os = "android")]
+use jnix::IntoJava;
use std::net::IpAddr;
#[cfg(unix)]
use std::os::unix::io::AsRawFd;
@@ -84,3 +86,21 @@ pub struct TunConfig {
/// Maximum Transmission Unit in the tunnel.
pub mtu: u16,
}
+
+#[cfg(target_os = "android")]
+#[derive(IntoJava)]
+#[jnix(package = "net.mullvad.talpid.tun_provider")]
+struct InetNetwork {
+ address: IpAddr,
+ prefix: i16,
+}
+
+#[cfg(target_os = "android")]
+impl From<IpNetwork> for InetNetwork {
+ fn from(ip_network: IpNetwork) -> Self {
+ InetNetwork {
+ address: ip_network.ip(),
+ prefix: ip_network.prefix() as i16,
+ }
+ }
+}