summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-05-27 18:12:53 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-05-28 16:37:59 +0000
commit8acd7dc97a02a95228e7b219141a02b2a4493aa2 (patch)
tree7f4459d34d80756947e62babb290057fd42f7b43
parentd5cf64689d6179dfa267d46b657ebe2a9939f8d0 (diff)
downloadmullvadvpn-8acd7dc97a02a95228e7b219141a02b2a4493aa2.tar.xz
mullvadvpn-8acd7dc97a02a95228e7b219141a02b2a4493aa2.zip
Allow setting a custom `TunProvider`
-rw-r--r--Cargo.lock1
-rw-r--r--mullvad-daemon/src/lib.rs9
-rw-r--r--mullvad-jni/Cargo.toml1
-rw-r--r--mullvad-jni/src/lib.rs4
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,