diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-05-27 18:12:53 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-05-28 16:37:59 +0000 |
| commit | 8acd7dc97a02a95228e7b219141a02b2a4493aa2 (patch) | |
| tree | 7f4459d34d80756947e62babb290057fd42f7b43 | |
| parent | d5cf64689d6179dfa267d46b657ebe2a9939f8d0 (diff) | |
| download | mullvadvpn-8acd7dc97a02a95228e7b219141a02b2a4493aa2.tar.xz mullvadvpn-8acd7dc97a02a95228e7b219141a02b2a4493aa2.zip | |
Allow setting a custom `TunProvider`
| -rw-r--r-- | Cargo.lock | 1 | ||||
| -rw-r--r-- | mullvad-daemon/src/lib.rs | 9 | ||||
| -rw-r--r-- | mullvad-jni/Cargo.toml | 1 | ||||
| -rw-r--r-- | mullvad-jni/src/lib.rs | 4 |
4 files changed, 12 insertions, 3 deletions
diff --git a/Cargo.lock b/Cargo.lock index ccf2d2491f..f31d6c06c5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1175,6 +1175,7 @@ dependencies = [ "mullvad-paths 0.1.0", "mullvad-types 0.1.0", "parking_lot 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "talpid-core 0.1.0", "talpid-types 0.1.0", ] diff --git a/mullvad-daemon/src/lib.rs b/mullvad-daemon/src/lib.rs index 8c4d66df98..4ff0f36c22 100644 --- a/mullvad-daemon/src/lib.rs +++ b/mullvad-daemon/src/lib.rs @@ -48,6 +48,7 @@ use std::{io, mem, path::PathBuf, sync::mpsc, thread, time::Duration}; use talpid_core::tunnel::tun_provider::StubTunProvider; use talpid_core::{ mpsc::IntoSender, + tunnel::tun_provider::TunProvider, tunnel_state_machine::{self, TunnelCommand, TunnelParametersGenerator}, }; use talpid_types::{ @@ -234,6 +235,7 @@ impl Daemon<ManagementInterfaceEventBroadcaster> { tx, rx, management_interface_broadcaster, + StubTunProvider, log_dir, resource_dir, cache_dir, @@ -279,8 +281,9 @@ impl<L> Daemon<L> where L: EventListener + Clone + Send + 'static, { - pub fn start_with_event_listener( + pub fn start_with_event_listener_and_tun_provider( event_listener: L, + tun_provider: impl TunProvider, log_dir: Option<PathBuf>, resource_dir: PathBuf, cache_dir: PathBuf, @@ -292,6 +295,7 @@ where tx, rx, event_listener, + tun_provider, log_dir, resource_dir, cache_dir, @@ -303,6 +307,7 @@ where internal_event_tx: mpsc::Sender<InternalDaemonEvent>, internal_event_rx: mpsc::Receiver<InternalDaemonEvent>, event_listener: L, + tun_provider: impl TunProvider, log_dir: Option<PathBuf>, resource_dir: PathBuf, cache_dir: PathBuf, @@ -346,7 +351,7 @@ where settings.get_allow_lan(), settings.get_block_when_disconnected(), tunnel_parameters_generator, - StubTunProvider, + tun_provider, log_dir, resource_dir, cache_dir.clone(), diff --git a/mullvad-jni/Cargo.toml b/mullvad-jni/Cargo.toml index bfb4cd7ede..9b1482f315 100644 --- a/mullvad-jni/Cargo.toml +++ b/mullvad-jni/Cargo.toml @@ -22,4 +22,5 @@ parking_lot = "0.8" mullvad-daemon = { path = "../mullvad-daemon" } mullvad-paths = { path = "../mullvad-paths" } mullvad-types = { path = "../mullvad-types" } +talpid-core = { path = "../talpid-core" } talpid-types = { path = "../talpid-types" } diff --git a/mullvad-jni/src/lib.rs b/mullvad-jni/src/lib.rs index 9e1b0c3b38..b35ec3efbf 100644 --- a/mullvad-jni/src/lib.rs +++ b/mullvad-jni/src/lib.rs @@ -19,6 +19,7 @@ use lazy_static::lazy_static; use mullvad_daemon::{logging, version, Daemon, DaemonCommandSender}; use parking_lot::{Mutex, RwLock}; use std::{collections::HashMap, path::PathBuf, sync::mpsc, thread}; +use talpid_core::tunnel::tun_provider::StubTunProvider; use talpid_types::ErrorExt; const LOG_FILENAME: &str = "daemon.log"; @@ -152,8 +153,9 @@ fn create_daemon( let resource_dir = mullvad_paths::get_resource_dir(); let cache_dir = mullvad_paths::cache_dir().map_err(Error::GetCacheDir)?; - let daemon = Daemon::start_with_event_listener( + let daemon = Daemon::start_with_event_listener_and_tun_provider( listener, + StubTunProvider, Some(log_dir), resource_dir, cache_dir, |
