diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-11-22 14:22:14 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-11-22 15:16:54 +0000 |
| commit | 5166c453faa029b3a960cc27b56b399d3b9e37fd (patch) | |
| tree | 269d8c520b7602554c7e5769cc278b0a8efaffda | |
| parent | fe5ee8de5d9fa75c511e1706b447fe8e8ec13972 (diff) | |
| download | mullvadvpn-5166c453faa029b3a960cc27b56b399d3b9e37fd.tar.xz mullvadvpn-5166c453faa029b3a960cc27b56b399d3b9e37fd.zip | |
Create `InetNetwork` conversion helper type
| -rw-r--r-- | Cargo.lock | 1 | ||||
| -rw-r--r-- | talpid-core/Cargo.toml | 4 | ||||
| -rw-r--r-- | talpid-core/src/tunnel/tun_provider/mod.rs | 20 |
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, + } + } +} |
