summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorLinus Färnstrand <faern@faern.net>2021-08-12 12:08:59 +0200
committerLinus Färnstrand <faern@faern.net>2021-08-12 13:21:33 +0200
commit107b8044ba9304121deff582e48d454d7ef61048 (patch)
tree36f25e2deb49a0ee2a356451aa93d2aade71ff76
parentb11665ca495da29b98f43db6c171b4baaf2f9ac7 (diff)
downloadmullvadvpn-107b8044ba9304121deff582e48d454d7ef61048.tar.xz
mullvadvpn-107b8044ba9304121deff582e48d454d7ef61048.zip
Upgrade socket2 to 0.4
-rw-r--r--Cargo.lock2
-rw-r--r--talpid-core/Cargo.toml4
-rw-r--r--talpid-core/src/ping_monitor/icmp.rs32
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,
})
}