diff --git a/libc-test/semver/linux-gnu.txt b/libc-test/semver/linux-gnu.txt index 0a9bda3d94f8f..20869c863d0b2 100644 --- a/libc-test/semver/linux-gnu.txt +++ b/libc-test/semver/linux-gnu.txt @@ -611,6 +611,9 @@ getentropy getgrent_r getloadavg getmntent_r +getnetbyaddr_r +getnetbyname_r +getnetent_r getpt getpwent_r getpwnam_r diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index dfcbc821b737b..20282e844932a 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -4073,6 +4073,7 @@ dup3 duplocale endgrent endmntent +endnetent endpwent endservent endspent @@ -4152,6 +4153,9 @@ getifaddrs getline getmntent getnameinfo +getnetbyaddr +getnetbyname +getnetent getopt_long getpriority getpwent @@ -4281,6 +4285,7 @@ msgsnd msqid_ds name_t name_to_handle_at +netent newlocale nice nl_item @@ -4471,6 +4476,7 @@ setgrent setgroups sethostname setmntent +setnetent setns setpriority setpwent diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index cf5d70e199098..d4d668d65f0ed 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -1136,6 +1136,30 @@ extern "C" { buflen: size_t, result: *mut *mut crate::group, ) -> c_int; + pub fn getnetent_r( + result_buf: *mut crate::netent, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::netent, + h_errnop: *mut c_int, + ) -> c_int; + pub fn getnetbyname_r( + name: *const c_char, + result_buf: *mut crate::netent, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::netent, + h_errnop: *mut c_int, + ) -> c_int; + pub fn getnetbyaddr_r( + net: u32, + type_: c_int, + result_buf: *mut crate::netent, + buf: *mut c_char, + buflen: size_t, + result: *mut *mut crate::netent, + h_errnop: *mut c_int, + ) -> c_int; pub fn putpwent(p: *const crate::passwd, stream: *mut crate::FILE) -> c_int; pub fn putgrent(grp: *const crate::group, stream: *mut crate::FILE) -> c_int; diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index e7ff34d592896..4f974b687618e 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -1128,6 +1128,14 @@ s! { pub ifi_flags: c_uint, pub ifi_change: c_uint, } + + // netdb.h + pub struct netent { + pub n_name: *mut c_char, + pub n_aliases: *mut *mut c_char, + pub n_addrtype: c_int, + pub n_net: u32, + } } cfg_if! { @@ -4088,6 +4096,11 @@ extern "C" { flags: c_int, ) -> c_int; pub fn open_by_handle_at(mount_fd: c_int, handle: *mut file_handle, flags: c_int) -> c_int; + pub fn getnetbyname(name: *const c_char) -> *mut netent; + pub fn getnetbyaddr(net: u32, type_: c_int) -> *mut netent; + pub fn getnetent() -> *mut netent; + pub fn setnetent(stayopen: c_int); + pub fn endnetent(); } // LFS64 extensions