diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-05-16 11:31:39 -0300 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-05-16 11:31:39 -0300 |
| commit | 42a7deb76468699d1270aaeb7abd4671e26cf55d (patch) | |
| tree | 10b2a1b889838a0fa88fb96cf26e340ec51bc3fd | |
| parent | 858b44484c9cc12c364191fb89d4ec6146c8d720 (diff) | |
| parent | a3a28d910fdd56c621d3a976f22919b91f5a6f80 (diff) | |
| download | mullvadvpn-42a7deb76468699d1270aaeb7abd4671e26cf55d.tar.xz mullvadvpn-42a7deb76468699d1270aaeb7abd4671e26cf55d.zip | |
Merge branch 'compile-out-openvpn-on-android'
| -rw-r--r-- | talpid-core/src/lib.rs | 2 | ||||
| -rw-r--r-- | talpid-core/src/tunnel/mod.rs | 26 | ||||
| -rw-r--r-- | talpid-core/src/tunnel_state_machine/connected_state.rs | 1 | ||||
| -rw-r--r-- | talpid-core/src/tunnel_state_machine/connecting_state.rs | 1 |
4 files changed, 28 insertions, 2 deletions
diff --git a/talpid-core/src/lib.rs b/talpid-core/src/lib.rs index fa19f10d98..3324101117 100644 --- a/talpid-core/src/lib.rs +++ b/talpid-core/src/lib.rs @@ -50,9 +50,11 @@ pub mod dns; /// State machine to handle tunnel configuration. pub mod tunnel_state_machine; +#[cfg(not(target_os = "android"))] /// Internal code for managing bundled proxy software. mod proxy; +#[cfg(not(target_os = "android"))] mod mktemp; /// Misc utilities for the Linux platform. diff --git a/talpid-core/src/tunnel/mod.rs b/talpid-core/src/tunnel/mod.rs index baa5a906ba..4d27be32ec 100644 --- a/talpid-core/src/tunnel/mod.rs +++ b/talpid-core/src/tunnel/mod.rs @@ -1,15 +1,19 @@ use crate::logging; +#[cfg(not(target_os = "android"))] +use std::collections::HashMap; use std::{ - collections::HashMap, io, net::{IpAddr, Ipv4Addr, Ipv6Addr}, path::{Path, PathBuf}, }; +#[cfg(not(target_os = "android"))] +use talpid_types::net::openvpn as openvpn_types; #[cfg(any(target_os = "linux", target_os = "macos"))] use talpid_types::net::wireguard as wireguard_types; -use talpid_types::net::{openvpn as openvpn_types, GenericTunnelOptions, TunnelParameters}; +use talpid_types::net::{GenericTunnelOptions, TunnelParameters}; /// A module for all OpenVPN related tunnel management. +#[cfg(not(target_os = "android"))] pub mod openvpn; #[cfg(any(target_os = "linux", target_os = "macos"))] @@ -42,6 +46,7 @@ pub enum Error { WireguardConfigError(#[error(cause)] self::wireguard::config::Error), /// There was an error listening for events from the OpenVPN tunnel + #[cfg(not(target_os = "android"))] #[error(display = "Failed while listening for events from the OpenVPN tunnel")] OpenVpnTunnelMonitoringError(#[error(cause)] openvpn::Error), @@ -76,6 +81,7 @@ pub struct TunnelMetadata { pub ipv6_gateway: Option<Ipv6Addr>, } +#[cfg(not(target_os = "android"))] impl TunnelEvent { /// Converts an `openvpn_plugin::EventType` to a `TunnelEvent`. /// Returns `None` if there is no corresponding `TunnelEvent`. @@ -129,6 +135,7 @@ pub struct TunnelMonitor { impl TunnelMonitor { /// Creates a new `TunnelMonitor` that connects to the given remote and notifies `on_event` /// on tunnel state changes. + #[cfg_attr(target_os = "android", allow(unused_variables))] pub fn start<L>( tunnel_parameters: &TunnelParameters, log_dir: &Option<PathBuf>, @@ -142,6 +149,7 @@ impl TunnelMonitor { let log_file = Self::prepare_tunnel_log_file(&tunnel_parameters, log_dir)?; match tunnel_parameters { + #[cfg(not(target_os = "android"))] TunnelParameters::OpenVpn(config) => { Self::start_openvpn_tunnel(&config, log_file, resource_dir, on_event) } @@ -149,6 +157,8 @@ impl TunnelMonitor { TunnelParameters::Wireguard(config) => { Self::start_wireguard_tunnel(&config, log_file, on_event) } + #[cfg(target_os = "android")] + TunnelParameters::OpenVpn(_) => Err(Error::UnsupportedPlatform), #[cfg(any(windows, target_os = "android"))] TunnelParameters::Wireguard(_) => Err(Error::UnsupportedPlatform), } @@ -174,6 +184,7 @@ impl TunnelMonitor { }) } + #[cfg(not(target_os = "android"))] fn start_openvpn_tunnel<L>( config: &openvpn_types::TunnelParameters, log: Option<PathBuf>, @@ -231,6 +242,7 @@ impl TunnelMonitor { /// A handle to a `TunnelMonitor` pub enum CloseHandle { + #[cfg(not(target_os = "android"))] /// OpenVpn close handle OpenVpn(openvpn::OpenVpnCloseHandle), #[cfg(any(target_os = "linux", target_os = "macos"))] @@ -241,6 +253,10 @@ pub enum CloseHandle { impl CloseHandle { /// Closes the underlying tunnel, making the `TunnelMonitor::wait` method return. pub fn close(self) -> io::Result<()> { + #[cfg(target_os = "android")] + unimplemented!(); + + #[cfg(not(target_os = "android"))] match self { CloseHandle::OpenVpn(handle) => handle.close(), #[cfg(any(target_os = "linux", target_os = "macos"))] @@ -253,6 +269,7 @@ impl CloseHandle { } enum InternalTunnelMonitor { + #[cfg(not(target_os = "android"))] OpenVpn(openvpn::OpenVpnMonitor), #[cfg(any(target_os = "linux", target_os = "macos"))] Wireguard(wireguard::WireguardMonitor), @@ -260,14 +277,19 @@ enum InternalTunnelMonitor { impl InternalTunnelMonitor { fn close_handle(&self) -> CloseHandle { + #[cfg(not(target_os = "android"))] match self { InternalTunnelMonitor::OpenVpn(tun) => CloseHandle::OpenVpn(tun.close_handle()), #[cfg(any(target_os = "linux", target_os = "macos"))] InternalTunnelMonitor::Wireguard(tun) => CloseHandle::Wireguard(tun.close_handle()), } + + #[cfg(target_os = "android")] + unimplemented!(); } fn wait(self) -> Result<()> { + #[cfg(not(target_os = "android"))] match self { InternalTunnelMonitor::OpenVpn(tun) => tun.wait()?, #[cfg(any(target_os = "linux", target_os = "macos"))] diff --git a/talpid-core/src/tunnel_state_machine/connected_state.rs b/talpid-core/src/tunnel_state_machine/connected_state.rs index f0dad2b581..324d2cbbc8 100644 --- a/talpid-core/src/tunnel_state_machine/connected_state.rs +++ b/talpid-core/src/tunnel_state_machine/connected_state.rs @@ -194,6 +194,7 @@ impl ConnectedState { impl TunnelState for ConnectedState { type Bootstrap = ConnectedStateBootstrap; + #[cfg_attr(target_os = "android", allow(unused_variables))] fn enter( shared_values: &mut SharedTunnelStateValues, bootstrap: Self::Bootstrap, diff --git a/talpid-core/src/tunnel_state_machine/connecting_state.rs b/talpid-core/src/tunnel_state_machine/connecting_state.rs index 8b9e6bbb63..66aee2d298 100644 --- a/talpid-core/src/tunnel_state_machine/connecting_state.rs +++ b/talpid-core/src/tunnel_state_machine/connecting_state.rs @@ -57,6 +57,7 @@ impl ConnectingState { shared_values.firewall.apply_policy(policy) } + #[cfg_attr(target_os = "android", allow(unused_variables))] fn start_tunnel( parameters: TunnelParameters, log_dir: &Option<PathBuf>, |
