diff options
| author | Markus Pettersson <markus.pettersson@mullvad.net> | 2024-12-30 14:22:26 +0100 |
|---|---|---|
| committer | Markus Pettersson <markus.pettersson@mullvad.net> | 2025-01-03 10:16:05 +0100 |
| commit | 5fea427faf237e5f3081d8d52c4044c13f831e42 (patch) | |
| tree | f7cc06e0d5d9e60f407cd62e336c527a0f8a0bc5 | |
| parent | 3a134c9356b80885127f9a8e061186e506cf3585 (diff) | |
| download | mullvadvpn-5fea427faf237e5f3081d8d52c4044c13f831e42.tar.xz mullvadvpn-5fea427faf237e5f3081d8d52c4044c13f831e42.zip | |
Remove `duct` from `talpid-tunnel`
| -rw-r--r-- | Cargo.lock | 1 | ||||
| -rw-r--r-- | talpid-tunnel/Cargo.toml | 1 | ||||
| -rw-r--r-- | talpid-tunnel/src/tun_provider/unix.rs | 37 |
3 files changed, 15 insertions, 24 deletions
diff --git a/Cargo.lock b/Cargo.lock index 599621943c..a603834bff 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4526,7 +4526,6 @@ name = "talpid-tunnel" version = "0.0.0" dependencies = [ "cfg-if", - "duct", "futures", "ipnetwork", "jnix", diff --git a/talpid-tunnel/Cargo.toml b/talpid-tunnel/Cargo.toml index 8fcd270370..580fe886d2 100644 --- a/talpid-tunnel/Cargo.toml +++ b/talpid-tunnel/Cargo.toml @@ -20,7 +20,6 @@ futures = { workspace = true } tokio = { workspace = true, features = ["process", "rt-multi-thread", "fs"] } [target.'cfg(all(unix, not(target_os = "android")))'.dependencies] -duct = "0.13" nix = "0.23" [target.'cfg(target_os = "android")'.dependencies] diff --git a/talpid-tunnel/src/tun_provider/unix.rs b/talpid-tunnel/src/tun_provider/unix.rs index 1081b3ce44..a1344a4248 100644 --- a/talpid-tunnel/src/tun_provider/unix.rs +++ b/talpid-tunnel/src/tun_provider/unix.rs @@ -163,31 +163,24 @@ impl TunnelDevice { IpAddr::V6(ipv6) => { #[cfg(target_os = "linux")] { - duct::cmd!( - "ip", - "-6", - "addr", - "add", - ipv6.to_string(), - "dev", - self.dev.name() - ) - .run() - .map(|_| ()) - .map_err(Error::SetIpv6) + use std::process::Command; + // ip -6 addr add <ipv6 address> dev <device> + let address = ipv6.to_string(); + let device = self.dev.name(); + let mut ip = Command::new("ip"); + ip.args(["-6", "addr", "add", &address, "dev", device]); + ip.output().map_err(Error::SetIpv6)?; + Ok(()) } #[cfg(target_os = "macos")] { - duct::cmd!( - "ifconfig", - self.dev.name(), - "inet6", - ipv6.to_string(), - "alias" - ) - .run() - .map(|_| ()) - .map_err(Error::SetIpv6) + // ifconfig <device> inet6 <ipv6 address> alias + let address = ipv6.to_string(); + let device = self.dev.name(); + let mut ifconfig = Command::new("ifconfig"); + ifconfig.args([device, "inet6", &address, "alias"]); + ifconfig.output().map_err(Error::SetIpv6)?; + Ok(()) } } } |
