Skip to content

Commit

Permalink
feat: ControlMessageOwned::{Ipv4RecvIf,Ipv4RecvDstAddr} for DragonFly…
Browse files Browse the repository at this point in the history
…BSD (#2240)

* feat: Enable ControlMessageOwned::{Ipv4RecvIf,Ipv4RecvDstAddr} for DragonFlyBSD

* fix DrafonFlyBSD

* fix Linux

* fix cfg
  • Loading branch information
SteveLauC authored Dec 2, 2023
1 parent e95162f commit a4e0c95
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 20 deletions.
1 change: 1 addition & 0 deletions changelog/2240.added.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Enable `ControlMessageOwned::Ipv4RecvIf` and `ControlMessageOwned::Ipv4RecvDstAddr` for DragonFlyBSD
8 changes: 4 additions & 4 deletions src/sys/socket/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -748,11 +748,11 @@ pub enum ControlMessageOwned {
#[cfg(feature = "net")]
#[cfg_attr(docsrs, doc(cfg(feature = "net")))]
Ipv6PacketInfo(libc::in6_pktinfo),
#[cfg(any(target_os = "freebsd", apple_targets, netbsdlike))]
#[cfg(bsd)]
#[cfg(feature = "net")]
#[cfg_attr(docsrs, doc(cfg(feature = "net")))]
Ipv4RecvIf(libc::sockaddr_dl),
#[cfg(any(target_os = "freebsd", apple_targets, netbsdlike))]
#[cfg(bsd)]
#[cfg(feature = "net")]
#[cfg_attr(docsrs, doc(cfg(feature = "net")))]
Ipv4RecvDstAddr(libc::in_addr),
Expand Down Expand Up @@ -931,13 +931,13 @@ impl ControlMessageOwned {
let info = unsafe { ptr::read_unaligned(p as *const libc::in_pktinfo) };
ControlMessageOwned::Ipv4PacketInfo(info)
}
#[cfg(any(target_os = "freebsd", apple_targets, netbsdlike))]
#[cfg(bsd)]
#[cfg(feature = "net")]
(libc::IPPROTO_IP, libc::IP_RECVIF) => {
let dl = unsafe { ptr::read_unaligned(p as *const libc::sockaddr_dl) };
ControlMessageOwned::Ipv4RecvIf(dl)
},
#[cfg(any(target_os = "freebsd", apple_targets, netbsdlike))]
#[cfg(bsd)]
#[cfg(feature = "net")]
(libc::IPPROTO_IP, libc::IP_RECVDSTADDR) => {
let dl = unsafe { ptr::read_unaligned(p as *const libc::in_addr) };
Expand Down
4 changes: 2 additions & 2 deletions src/sys/socket/sockopt.rs
Original file line number Diff line number Diff line change
Expand Up @@ -842,7 +842,7 @@ sockopt_impl!(
libc::IPV6_RECVPKTINFO,
bool
);
#[cfg(any(target_os = "freebsd", apple_targets, netbsdlike))]
#[cfg(bsd)]
#[cfg(feature = "net")]
sockopt_impl!(
#[cfg_attr(docsrs, doc(cfg(feature = "net")))]
Expand All @@ -854,7 +854,7 @@ sockopt_impl!(
libc::IP_RECVIF,
bool
);
#[cfg(any(target_os = "freebsd", apple_targets, netbsdlike))]
#[cfg(bsd)]
#[cfg(feature = "net")]
sockopt_impl!(
#[cfg_attr(docsrs, doc(cfg(feature = "net")))]
Expand Down
16 changes: 2 additions & 14 deletions test/sys/test_socket.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1750,14 +1750,7 @@ pub fn test_syscontrol() {
// connect(fd.as_raw_fd(), &sockaddr).expect("connect failed");
}

#[cfg(any(
target_os = "android",
target_os = "freebsd",
apple_targets,
target_os = "linux",
target_os = "netbsd",
target_os = "openbsd",
))]
#[cfg(any(bsd, linux_android))]
fn loopback_address(
family: AddressFamily,
) -> Option<nix::ifaddrs::InterfaceAddress> {
Expand Down Expand Up @@ -1880,12 +1873,7 @@ pub fn test_recv_ipv4pktinfo() {
}
}

#[cfg(any(
target_os = "freebsd",
apple_targets,
target_os = "netbsd",
target_os = "openbsd",
))]
#[cfg(bsd)]
// qemu doesn't seem to be emulating this correctly in these architectures
#[cfg_attr(
all(
Expand Down

0 comments on commit a4e0c95

Please sign in to comment.