summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAndrej Mihajlov <and.mikhaylov@gmail.com>2024-03-07 09:45:06 +0100
committerDavid Lönnhager <david.l@mullvad.net>2024-03-07 14:39:51 +0100
commit5b81fe6e6d4bb5a1ba615205f3a0bc082d97f6fa (patch)
tree9fd4ba564d10042435afa06c4afd421c468db1ed
parent9cf15cb93974efddfabadc21fbea0cd9abe72e6d (diff)
downloadmullvadvpn-5b81fe6e6d4bb5a1ba615205f3a0bc082d97f6fa.tar.xz
mullvadvpn-5b81fe6e6d4bb5a1ba615205f3a0bc082d97f6fa.zip
Bump nix
-rw-r--r--Cargo.lock34
-rw-r--r--talpid-routing/Cargo.toml3
-rw-r--r--talpid-routing/src/unix/macos/interface.rs2
-rw-r--r--talpid-routing/src/unix/macos/routing_socket.rs12
4 files changed, 26 insertions, 25 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 4b225166b9..ab0433f672 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -403,6 +403,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
+name = "cfg_aliases"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
+
+[[package]]
name = "chacha20"
version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1755,9 +1761,9 @@ dependencies = [
[[package]]
name = "memoffset"
-version = "0.8.0"
+version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1"
+checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
dependencies = [
"autocfg",
]
@@ -2193,26 +2199,26 @@ dependencies = [
[[package]]
name = "nix"
-version = "0.26.1"
-source = "git+https://github.com/nix-rust/nix?rev=b13b7d18e0d2f4a8c05e41576c7ebf26d6dbfb28#b13b7d18e0d2f4a8c05e41576c7ebf26d6dbfb28"
+version = "0.27.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.0",
"cfg-if",
"libc",
- "memoffset 0.8.0",
- "pin-utils",
- "static_assertions",
]
[[package]]
name = "nix"
-version = "0.27.1"
+version = "0.28.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
+checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
dependencies = [
"bitflags 2.4.0",
"cfg-if",
+ "cfg_aliases",
"libc",
+ "memoffset 0.9.0",
]
[[package]]
@@ -3433,12 +3439,6 @@ dependencies = [
]
[[package]]
-name = "static_assertions"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
-
-[[package]]
name = "strsim"
version = "0.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3678,7 +3678,7 @@ dependencies = [
"log",
"netlink-packet-route",
"netlink-sys",
- "nix 0.26.1",
+ "nix 0.28.0",
"once_cell",
"rtnetlink",
"system-configuration",
diff --git a/talpid-routing/Cargo.toml b/talpid-routing/Cargo.toml
index 16b9468063..063ccd2ea8 100644
--- a/talpid-routing/Cargo.toml
+++ b/talpid-routing/Cargo.toml
@@ -28,8 +28,7 @@ netlink-packet-route = { version = "0.13", features = ["rich_nlas"] }
netlink-sys = "0.8.3"
[target.'cfg(target_os = "macos")'.dependencies]
-# TODO: The PF socket type isn't released yet
-nix = { git = "https://github.com/nix-rust/nix", rev = "b13b7d18e0d2f4a8c05e41576c7ebf26d6dbfb28", features = ["socket"] }
+nix = { version = "0.28", features = ["socket", "fs", "net"] }
libc = "0.2"
bitflags = "2"
system-configuration = "0.5.1"
diff --git a/talpid-routing/src/unix/macos/interface.rs b/talpid-routing/src/unix/macos/interface.rs
index f2b8383d94..ebfe11fa16 100644
--- a/talpid-routing/src/unix/macos/interface.rs
+++ b/talpid-routing/src/unix/macos/interface.rs
@@ -307,7 +307,7 @@ fn is_active_interface(interface_name: &str, family: Family) -> io::Result<bool>
if let Some(addr) = addr.address {
// Check if family matches; ignore if link-local address
match family {
- Family::V4 => matches!(addr.as_sockaddr_in(), Some(addr_in) if is_routable_v4(&Ipv4Addr::from(addr_in.ip()))),
+ Family::V4 => matches!(addr.as_sockaddr_in(), Some(addr_in) if is_routable_v4(&addr_in.ip())),
Family::V6 => {
matches!(addr.as_sockaddr_in6(), Some(addr_in) if is_routable_v6(&addr_in.ip()))
}
diff --git a/talpid-routing/src/unix/macos/routing_socket.rs b/talpid-routing/src/unix/macos/routing_socket.rs
index e82b8522aa..14e8ee088d 100644
--- a/talpid-routing/src/unix/macos/routing_socket.rs
+++ b/talpid-routing/src/unix/macos/routing_socket.rs
@@ -1,7 +1,6 @@
use std::{
collections::VecDeque,
mem::size_of,
- os::unix::prelude::{FromRawFd, RawFd},
pin::Pin,
task::{ready, Context, Poll},
time::Duration,
@@ -14,6 +13,7 @@ use nix::{
use std::{
fs::File,
io::{self, Read, Write},
+ os::fd::{AsRawFd, RawFd},
};
use super::data::{rt_msghdr_short, MessageType, RouteMessage};
@@ -139,9 +139,11 @@ struct RoutingSocketInner {
impl RoutingSocketInner {
fn new() -> io::Result<Self> {
let fd = socket(AddressFamily::Route, SockType::Raw, SockFlag::empty(), None)?;
- let _ = fcntl::fcntl(fd, fcntl::FcntlArg::F_SETFL(fcntl::OFlag::O_NONBLOCK))?;
- // SAFETY: File handle is valid here
- let socket = unsafe { File::from_raw_fd(fd) };
+ let _ = fcntl::fcntl(
+ fd.as_raw_fd(),
+ fcntl::FcntlArg::F_SETFL(fcntl::OFlag::O_NONBLOCK),
+ )?;
+ let socket = File::from(fd);
Ok(Self {
socket: AsyncFd::new(socket)?,
})
@@ -158,7 +160,7 @@ impl RoutingSocketInner {
}
}
-impl std::os::unix::prelude::AsRawFd for RoutingSocketInner {
+impl AsRawFd for RoutingSocketInner {
fn as_raw_fd(&self) -> RawFd {
self.socket.as_raw_fd()
}