summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2020-06-04 14:50:33 +0200
committerDavid Lönnhager <david.l@mullvad.net>2020-06-04 14:50:33 +0200
commit2d624ed34da8eedd9e967e6d3c3d095981ad49db (patch)
tree214e7103b4d2250e4f8d66b65679a09df20d4f56
parent76a75a268abb1ac8daeffd39087c96cc6fe688c0 (diff)
parent48707812900cd46054a307225784f855fcc4b228 (diff)
downloadmullvadvpn-2d624ed34da8eedd9e967e6d3c3d095981ad49db.tar.xz
mullvadvpn-2d624ed34da8eedd9e967e6d3c3d095981ad49db.zip
Merge branch 'split-tunnel-update-mods'
-rw-r--r--mullvad-cli/src/cmds/split_tunnel/linux.rs (renamed from mullvad-cli/src/cmds/split_tunnel.rs)0
-rw-r--r--mullvad-cli/src/cmds/split_tunnel/mod.rs6
-rw-r--r--talpid-core/src/split_tunnel/linux.rs (renamed from talpid-core/src/split_tunnel.rs)9
-rw-r--r--talpid-core/src/split_tunnel/mod.rs6
4 files changed, 15 insertions, 6 deletions
diff --git a/mullvad-cli/src/cmds/split_tunnel.rs b/mullvad-cli/src/cmds/split_tunnel/linux.rs
index 95b172eb6b..95b172eb6b 100644
--- a/mullvad-cli/src/cmds/split_tunnel.rs
+++ b/mullvad-cli/src/cmds/split_tunnel/linux.rs
diff --git a/mullvad-cli/src/cmds/split_tunnel/mod.rs b/mullvad-cli/src/cmds/split_tunnel/mod.rs
new file mode 100644
index 0000000000..c7c366d6ea
--- /dev/null
+++ b/mullvad-cli/src/cmds/split_tunnel/mod.rs
@@ -0,0 +1,6 @@
+#[cfg(target_os = "linux")]
+#[path = "linux.rs"]
+mod imp;
+
+#[cfg(target_os = "linux")]
+pub use imp::*;
diff --git a/talpid-core/src/split_tunnel.rs b/talpid-core/src/split_tunnel/linux.rs
index d9054ad4d8..6359e05669 100644
--- a/talpid-core/src/split_tunnel.rs
+++ b/talpid-core/src/split_tunnel/linux.rs
@@ -1,4 +1,3 @@
-#![cfg(target_os = "linux")]
use std::{
fs,
io::{self, BufRead, BufReader, BufWriter, Write},
@@ -45,13 +44,13 @@ pub enum Error {
}
/// Manages PIDs to exclude from the tunnel.
-pub struct PidManager;
+pub struct PidManager(());
impl PidManager {
/// Create object to manage split-tunnel PIDs.
pub fn new() -> Result<PidManager, Error> {
Self::create_cgroup()?;
- Ok(PidManager {})
+ Ok(PidManager(()))
}
/// Set up cgroup used to track PIDs for split tunneling.
@@ -88,7 +87,7 @@ impl PidManager {
}
/// Add PIDs to exclude from the tunnel.
- pub fn add_list(&self, pids: &[i32]) -> Result<(), Error> {
+ pub fn add_list<T: Into<i32> + ToString>(&self, pids: &[T]) -> Result<(), Error> {
let exclusions_path = Path::new(NETCLS_DIR)
.join(SPLIT_TUNNEL_CGROUP_NAME)
.join("cgroup.procs");
@@ -128,8 +127,6 @@ impl PidManager {
/// Return a list of PIDs that are excluded from the tunnel.
pub fn list(&self) -> Result<Vec<i32>, Error> {
- // TODO: manage child PIDs somehow?
-
let exclusions_path = Path::new(NETCLS_DIR)
.join(SPLIT_TUNNEL_CGROUP_NAME)
.join("cgroup.procs");
diff --git a/talpid-core/src/split_tunnel/mod.rs b/talpid-core/src/split_tunnel/mod.rs
new file mode 100644
index 0000000000..c7c366d6ea
--- /dev/null
+++ b/talpid-core/src/split_tunnel/mod.rs
@@ -0,0 +1,6 @@
+#[cfg(target_os = "linux")]
+#[path = "linux.rs"]
+mod imp;
+
+#[cfg(target_os = "linux")]
+pub use imp::*;