diff options
| -rw-r--r-- | talpid-core/src/tunnel_state_machine/mod.rs | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/talpid-core/src/tunnel_state_machine/mod.rs b/talpid-core/src/tunnel_state_machine/mod.rs index 2ffce2bec9..3e75206e33 100644 --- a/talpid-core/src/tunnel_state_machine/mod.rs +++ b/talpid-core/src/tunnel_state_machine/mod.rs @@ -20,6 +20,7 @@ use crate::{ mpsc::Sender, offline, routing::RouteManager, + split, tunnel::tun_provider::TunProvider, }; @@ -50,6 +51,10 @@ pub enum Error { #[error(display = "Unable to spawn offline state monitor")] OfflineMonitorError(#[error(source)] crate::offline::Error), + /// Unable to set up split tunneling + #[error(display = "Failed to initialize split tunneling")] + InitSplitTunneling(#[error(source)] crate::split::Error), + /// Failed to initialize the system firewall integration. #[error(display = "Failed to initialize the system firewall integration")] InitFirewallError(#[error(source)] crate::firewall::Error), @@ -235,6 +240,10 @@ impl TunnelStateMachine { allow_lan: None, } }; + + #[cfg(unix)] + split::create_cgroup().map_err(Error::InitSplitTunneling)?; + let firewall = Firewall::new(args).map_err(Error::InitFirewallError)?; let dns_monitor = DnsMonitor::new(cache_dir).map_err(Error::InitDnsMonitorError)?; let route_manager = |
