use ip6 feature flag for IPv6 related definitions

as a consequence, some unit tests have to be fixed, too
This commit is contained in:
sourceturner
2026-06-04 00:03:11 +02:00
parent 125d48e9cd
commit 20d89d166c
9 changed files with 51 additions and 10 deletions
+11 -3
View File
@@ -17,7 +17,7 @@ use crate::{
bits_safamily_t::sa_family_t,
errno::*,
fcntl::O_RDONLY,
netinet_in::{in_addr, sockaddr_in, sockaddr_in6},
netinet_in::{in_addr, sockaddr_in},
stdlib::atoi,
strings::strcasecmp,
sys_socket::{constants::AF_INET, sockaddr, socklen_t},
@@ -31,6 +31,9 @@ use crate::{
raw_cell::RawCell,
};
#[cfg(feature = "ip6")]
use crate::header::netinet_in::sockaddr_in6;
#[cfg(target_os = "linux")]
#[path = "linux.rs"]
pub mod sys;
@@ -1058,9 +1061,14 @@ pub unsafe extern "C" fn freeaddrinfo(res: *mut addrinfo) {
if !bai.ai_addr.is_null() {
if bai.ai_addrlen == mem::size_of::<sockaddr_in>() as socklen_t {
unsafe { drop(Box::from_raw(bai.ai_addr.cast::<sockaddr_in>())) };
} else if bai.ai_addrlen == mem::size_of::<sockaddr_in6>() as socklen_t {
unsafe { drop(Box::from_raw(bai.ai_addr.cast::<sockaddr_in6>())) };
} else {
#[cfg(feature = "ip6")]
if bai.ai_addrlen == mem::size_of::<sockaddr_in6>() as socklen_t {
unsafe { drop(Box::from_raw(bai.ai_addr.cast::<sockaddr_in6>())) };
} else {
todo_skip!(0, "freeaddrinfo: unknown ai_addrlen {}", bai.ai_addrlen);
}
#[cfg(not(feature = "ip6"))]
todo_skip!(0, "freeaddrinfo: unknown ai_addrlen {}", bai.ai_addrlen);
}
}