diff options
| author | Linus Färnstrand <faern@faern.net> | 2021-08-12 12:08:59 +0200 |
|---|---|---|
| committer | Linus Färnstrand <faern@faern.net> | 2021-08-12 13:21:33 +0200 |
| commit | 107b8044ba9304121deff582e48d454d7ef61048 (patch) | |
| tree | 36f25e2deb49a0ee2a356451aa93d2aade71ff76 | |
| parent | b11665ca495da29b98f43db6c171b4baaf2f9ac7 (diff) | |
| download | mullvadvpn-107b8044ba9304121deff582e48d454d7ef61048.tar.xz mullvadvpn-107b8044ba9304121deff582e48d454d7ef61048.zip | |
Upgrade socket2 to 0.4
| -rw-r--r-- | Cargo.lock | 2 | ||||
| -rw-r--r-- | talpid-core/Cargo.toml | 4 | ||||
| -rw-r--r-- | talpid-core/src/ping_monitor/icmp.rs | 32 |
3 files changed, 11 insertions, 27 deletions
diff --git a/Cargo.lock b/Cargo.lock index caa716fca3..54e805dd57 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2520,7 +2520,7 @@ dependencies = [ "resolv-conf", "rtnetlink", "shell-escape", - "socket2 0.3.19", + "socket2 0.4.0", "system-configuration", "talpid-dbus", "talpid-platform-metadata", diff --git a/talpid-core/Cargo.toml b/talpid-core/Cargo.toml index a08065a36e..eacc75e381 100644 --- a/talpid-core/Cargo.toml +++ b/talpid-core/Cargo.toml @@ -62,7 +62,7 @@ mnl = { version = "0.2.0", features = ["mnl-1-0-4"] } which = { version = "4.0", default-features = false } tun = "0.5.1" talpid-dbus = { path = "../talpid-dbus" } -socket2 = "0.3" +socket2 = { version = "0.4", features = ["all"] } internet-checksum = "0.2" @@ -78,7 +78,7 @@ internet-checksum = "0.2" widestring = "0.4" winreg = { version = "0.7", features = ["transactions"] } winapi = { version = "0.3.6", features = ["combaseapi", "handleapi", "ifdef", "libloaderapi", "netioapi", "psapi", "stringapiset", "synchapi", "winbase", "winioctl", "winuser"] } -socket2 = "0.3" +socket2 = { version = "0.4", features = ["all"] } talpid-platform-metadata = { path = "../talpid-platform-metadata" } memoffset = "0.6" diff --git a/talpid-core/src/ping_monitor/icmp.rs b/talpid-core/src/ping_monitor/icmp.rs index 2965231219..fea819b04e 100644 --- a/talpid-core/src/ping_monitor/icmp.rs +++ b/talpid-core/src/ping_monitor/icmp.rs @@ -1,8 +1,6 @@ use byteorder::{NetworkEndian, WriteBytesExt}; use rand::Rng; use socket2::{Domain, Protocol, Socket, Type}; -#[cfg(target_os = "linux")] -use std::ffi::CString; use std::{ io::{self, Write}, net::{Ipv4Addr, SocketAddr}, @@ -51,38 +49,24 @@ pub struct Pinger { } impl Pinger { - #[cfg(target_os = "windows")] - pub fn new(addr: Ipv4Addr, _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)?; - sock.set_nonblocking(true).map_err(Error::OpenError)?; - - Ok(Self { - sock, - id: rand::random(), - addr, - seq: 0, - }) - } - - #[cfg(target_os = "linux")] pub fn new(addr: Ipv4Addr, interface_name: String) -> Result<Self> { let addr = SocketAddr::new(addr.into(), 0); - let sock = Socket::new(Domain::ipv4(), Type::raw(), Some(Protocol::icmpv4())) + let sock = Socket::new(Domain::IPV4, Type::RAW, Some(Protocol::ICMPV4)) .map_err(Error::OpenError)?; sock.set_nonblocking(true).map_err(Error::OpenError)?; - let cname = CString::new(interface_name.as_bytes().to_vec()) - .map_err(|_| Error::InterfaceNameContainsNull)?; - sock.bind_device(Some(&cname)) + #[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 { - addr, sock, - seq: 0, + addr, id: rand::random(), + seq: 0, }) } |
