use ip6 feature flag for IPv6 related definitions
as a consequence, some unit tests have to be fixed, too
This commit is contained in:
+11
-3
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user