summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorLinus Färnstrand <faern@faern.net>2021-08-12 15:00:31 +0200
committerLinus Färnstrand <faern@faern.net>2021-08-12 15:00:31 +0200
commit8d82c67fcc57095cdf13be29b89a530ddc577acd (patch)
treea1c292836fa323b3c44cf8d456148ae95e2e846f
parent107b8044ba9304121deff582e48d454d7ef61048 (diff)
downloadmullvadvpn-8d82c67fcc57095cdf13be29b89a530ddc577acd.tar.xz
mullvadvpn-8d82c67fcc57095cdf13be29b89a530ddc577acd.zip
Fix conditionally sending interface name nicer
-rw-r--r--talpid-core/src/ping_monitor/icmp.rs5
-rw-r--r--talpid-core/src/ping_monitor/mod.rs8
-rw-r--r--talpid-core/src/tunnel/wireguard/connectivity_check.rs9
-rw-r--r--talpid-core/src/tunnel/wireguard/mod.rs1
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,