diff options
| author | Andrej Mihajlov <and.mikhaylov@gmail.com> | 2024-03-07 09:45:06 +0100 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2024-03-07 14:39:51 +0100 |
| commit | 5b81fe6e6d4bb5a1ba615205f3a0bc082d97f6fa (patch) | |
| tree | 9fd4ba564d10042435afa06c4afd421c468db1ed | |
| parent | 9cf15cb93974efddfabadc21fbea0cd9abe72e6d (diff) | |
| download | mullvadvpn-5b81fe6e6d4bb5a1ba615205f3a0bc082d97f6fa.tar.xz mullvadvpn-5b81fe6e6d4bb5a1ba615205f3a0bc082d97f6fa.zip | |
Bump nix
| -rw-r--r-- | Cargo.lock | 34 | ||||
| -rw-r--r-- | talpid-routing/Cargo.toml | 3 | ||||
| -rw-r--r-- | talpid-routing/src/unix/macos/interface.rs | 2 | ||||
| -rw-r--r-- | talpid-routing/src/unix/macos/routing_socket.rs | 12 |
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() } |
