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 /talpid-routing | |
| parent | 9cf15cb93974efddfabadc21fbea0cd9abe72e6d (diff) | |
| download | mullvadvpn-5b81fe6e6d4bb5a1ba615205f3a0bc082d97f6fa.tar.xz mullvadvpn-5b81fe6e6d4bb5a1ba615205f3a0bc082d97f6fa.zip | |
Bump nix
Diffstat (limited to 'talpid-routing')
| -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 |
3 files changed, 9 insertions, 8 deletions
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() } |
