diff options
| author | Linus Färnstrand <faern@faern.net> | 2021-08-12 15:00:31 +0200 |
|---|---|---|
| committer | Linus Färnstrand <faern@faern.net> | 2021-08-12 15:00:31 +0200 |
| commit | 8d82c67fcc57095cdf13be29b89a530ddc577acd (patch) | |
| tree | a1c292836fa323b3c44cf8d456148ae95e2e846f | |
| parent | 107b8044ba9304121deff582e48d454d7ef61048 (diff) | |
| download | mullvadvpn-8d82c67fcc57095cdf13be29b89a530ddc577acd.tar.xz mullvadvpn-8d82c67fcc57095cdf13be29b89a530ddc577acd.zip | |
Fix conditionally sending interface name nicer
| -rw-r--r-- | talpid-core/src/ping_monitor/icmp.rs | 5 | ||||
| -rw-r--r-- | talpid-core/src/ping_monitor/mod.rs | 8 | ||||
| -rw-r--r-- | talpid-core/src/tunnel/wireguard/connectivity_check.rs | 9 | ||||
| -rw-r--r-- | talpid-core/src/tunnel/wireguard/mod.rs | 1 |
4 files changed, 15 insertions, 8 deletions
diff --git a/talpid-core/src/ping_monitor/icmp.rs b/talpid-core/src/ping_monitor/icmp.rs index fea819b04e..a25a31e1b2 100644 --- a/talpid-core/src/ping_monitor/icmp.rs +++ b/talpid-core/src/ping_monitor/icmp.rs @@ -49,7 +49,7 @@ pub struct Pinger { } impl Pinger { - pub fn new(addr: Ipv4Addr, interface_name: String) -> Result<Self> { + pub fn new(addr: Ipv4Addr, #[cfg(target_os = "linux")] interface_name: String) -> Result<Self> { let addr = SocketAddr::new(addr.into(), 0); let sock = Socket::new(Domain::IPV4, Type::RAW, Some(Protocol::ICMPV4)) .map_err(Error::OpenError)?; @@ -58,9 +58,6 @@ impl Pinger { #[cfg(target_os = "linux")] sock.bind_device(Some(interface_name.as_bytes())) .map_err(Error::SocketOptError)?; - // Just ignore the interface name on non-Linux - #[cfg(not(target_os = "linux"))] - let _ = interface_name; Ok(Self { sock, diff --git a/talpid-core/src/ping_monitor/mod.rs b/talpid-core/src/ping_monitor/mod.rs index 2a6f5afbee..ba265232ae 100644 --- a/talpid-core/src/ping_monitor/mod.rs +++ b/talpid-core/src/ping_monitor/mod.rs @@ -20,7 +20,11 @@ pub trait Pinger: Send { /// Create a new pinger pub fn new_pinger( addr: std::net::Ipv4Addr, - interface_name: String, + #[cfg(not(target_os = "windows"))] interface_name: String, ) -> Result<Box<dyn Pinger>, Error> { - Ok(Box::new(imp::Pinger::new(addr, interface_name)?)) + Ok(Box::new(imp::Pinger::new( + addr, + #[cfg(not(target_os = "windows"))] + interface_name, + )?)) } diff --git a/talpid-core/src/tunnel/wireguard/connectivity_check.rs b/talpid-core/src/tunnel/wireguard/connectivity_check.rs index 60318c071b..0e3dc1186e 100644 --- a/talpid-core/src/tunnel/wireguard/connectivity_check.rs +++ b/talpid-core/src/tunnel/wireguard/connectivity_check.rs @@ -77,11 +77,16 @@ pub struct ConnectivityMonitor { impl ConnectivityMonitor { pub(super) fn new( addr: Ipv4Addr, - interface: String, + #[cfg(not(target_os = "windows"))] interface: String, tunnel_handle: Weak<Mutex<Option<Box<dyn Tunnel>>>>, close_receiver: mpsc::Receiver<()>, ) -> Result<Self, Error> { - let pinger = new_pinger(addr, interface).map_err(Error::PingError)?; + let pinger = new_pinger( + addr, + #[cfg(not(target_os = "windows"))] + interface, + ) + .map_err(Error::PingError)?; let now = Instant::now(); diff --git a/talpid-core/src/tunnel/wireguard/mod.rs b/talpid-core/src/tunnel/wireguard/mod.rs index 53740a93b4..a104c0037e 100644 --- a/talpid-core/src/tunnel/wireguard/mod.rs +++ b/talpid-core/src/tunnel/wireguard/mod.rs @@ -221,6 +221,7 @@ impl WireguardMonitor { let close_sender = monitor.close_msg_sender.clone(); let mut connectivity_monitor = connectivity_check::ConnectivityMonitor::new( gateway, + #[cfg(not(target_os = "windows"))] iface_name.clone(), Arc::downgrade(&monitor.tunnel), pinger_rx, |
