#![allow(non_snake_case, non_camel_case_types, non_upper_case_globals)]
#![warn(unused_must_use)]
#[path = "c_ares.rs"]
pub mod c_ares_draft;
#[cfg(windows)]
pub mod winsock {
use core::ffi::{c_int, c_long};
pub(crate) type socklen_t = c_int; pub(crate) use bun_libuv_sys::{sockaddr, sockaddr_in, sockaddr_in6};
#[repr(C)]
#[derive(Clone, Copy)]
pub struct timeval {
pub tv_sec: c_long,
pub tv_usec: c_long,
}
#[repr(C)]
#[derive(Clone, Copy)]
pub struct iovec {
pub iov_base: *mut core::ffi::c_void,
pub iov_len: usize,
}
}
pub use c_ares_draft as c_ares;
pub use c_ares::{ares_inet_ntop, ares_inet_pton};
#[inline]
pub unsafe fn ntop(
af: core::ffi::c_int,
src: *const core::ffi::c_void,
dst: &mut [u8],
) -> Option<&[u8]> {
if unsafe {
c_ares::ares_inet_ntop(
af,
src,
dst.as_mut_ptr(),
dst.len() as c_ares::ares_socklen_t,
)
}
.is_null()
{
return None;
}
Some(bun_core::ffi::slice_to_nul(dst))
}