uapi 0.2.2

Wrappers for OS APIs on UNIX-like platform
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use crate::*;

pub use netlink::*;

mod netlink;

#[man(accept4(2))]
pub fn accept4<T: Pod + ?Sized>(
    sockfd: c::c_int,
    mut addr: Option<&mut T>,
    flags: c::c_int,
) -> Result<(OwnedFd, usize)> {
    let mut addrlen = 0;
    let (ptr, len) = super::opt_to_sockaddr_mut(&mut addr, &mut addrlen)?;
    let res = unsafe { c::accept4(sockfd, ptr, len, flags) };
    let fd = map_err!(res).map(OwnedFd::new)?;
    Ok((fd, addrlen as usize))
}