From 32228286ac32aff8103975fbc1f23d7a1701302b Mon Sep 17 00:00:00 2001 From: ssrlive <30760636+ssrlive@users.noreply.github.com> Date: Wed, 11 Oct 2023 00:32:15 +0800 Subject: [PATCH] libc::sa_family_t issues for linux and macos --- src/platform/posix/sockaddr.rs | 21 +++------------------ src/platform/windows/device.rs | 2 +- 2 files changed, 4 insertions(+), 19 deletions(-) diff --git a/src/platform/posix/sockaddr.rs b/src/platform/posix/sockaddr.rs index 0eaaaa0d..ccc2a945 100644 --- a/src/platform/posix/sockaddr.rs +++ b/src/platform/posix/sockaddr.rs @@ -12,17 +12,8 @@ // // 0. You just DO WHAT THE FUCK YOU WANT TO. -use std::mem; -use std::net::Ipv4Addr; -use std::ptr; - -#[cfg(any(target_os = "macos", target_os = "ios"))] -use libc::c_uchar; -#[cfg(any(target_os = "linux", target_os = "android"))] -use libc::c_ushort; - -use libc::AF_INET as _AF_INET; use libc::{in_addr, sockaddr, sockaddr_in}; +use std::{mem, net::Ipv4Addr, ptr}; use crate::error::*; @@ -30,16 +21,10 @@ use crate::error::*; #[derive(Copy, Clone)] pub struct SockAddr(sockaddr_in); -#[cfg(any(target_os = "linux", target_os = "android"))] -const AF_INET: c_ushort = _AF_INET as c_ushort; - -#[cfg(any(target_os = "macos", target_os = "ios"))] -const AF_INET: c_uchar = _AF_INET as c_uchar; - impl SockAddr { /// Create a new `SockAddr` from a generic `sockaddr`. pub fn new(value: &sockaddr) -> Result { - if value.sa_family != AF_INET { + if value.sa_family != libc::AF_INET as libc::sa_family_t { return Err(Error::InvalidAddress); } @@ -64,7 +49,7 @@ impl From for SockAddr { let octets = ip.octets(); let mut addr = unsafe { mem::zeroed::() }; - addr.sin_family = AF_INET; + addr.sin_family = libc::AF_INET as libc::sa_family_t; addr.sin_port = 0; addr.sin_addr = in_addr { s_addr: u32::from_ne_bytes(octets), diff --git a/src/platform/windows/device.rs b/src/platform/windows/device.rs index d0e9c1d4..53bee9e4 100644 --- a/src/platform/windows/device.rs +++ b/src/platform/windows/device.rs @@ -45,7 +45,7 @@ impl Device { let address = config.address.unwrap_or(Ipv4Addr::new(10, 1, 0, 2)); let mask = config.netmask.unwrap_or(Ipv4Addr::new(255, 255, 255, 0)); - let gateway = config.destination.map_or(None, |a| Some(IpAddr::V4(a))); + let gateway = config.destination.map(IpAddr::from); adapter.set_network_addresses_tuple(IpAddr::V4(address), IpAddr::V4(mask), gateway)?; let mtu = config.mtu.unwrap_or(1500) as usize;