summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-05-16 11:31:39 -0300
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-05-16 11:31:39 -0300
commit42a7deb76468699d1270aaeb7abd4671e26cf55d (patch)
tree10b2a1b889838a0fa88fb96cf26e340ec51bc3fd
parent858b44484c9cc12c364191fb89d4ec6146c8d720 (diff)
parenta3a28d910fdd56c621d3a976f22919b91f5a6f80 (diff)
downloadmullvadvpn-42a7deb76468699d1270aaeb7abd4671e26cf55d.tar.xz
mullvadvpn-42a7deb76468699d1270aaeb7abd4671e26cf55d.zip
Merge branch 'compile-out-openvpn-on-android'
-rw-r--r--talpid-core/src/lib.rs2
-rw-r--r--talpid-core/src/tunnel/mod.rs26
-rw-r--r--talpid-core/src/tunnel_state_machine/connected_state.rs1
-rw-r--r--talpid-core/src/tunnel_state_machine/connecting_state.rs1
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>,