Function nc::setsockopt

source ·
pub unsafe fn setsockopt(
    sockfd: i32,
    level: i32,
    optname: i32,
    optval: usize,
    optlen: socklen_t
) -> Result<(), Errno>
Expand description

Set options on sockets.

§Example

let socket_fd = unsafe { nc::socket(nc::AF_INET, nc::SOCK_STREAM, 0) };
assert!(socket_fd.is_ok());
let socket_fd = socket_fd.unwrap();

// Enable tcp fast open.
let queue_len: i32 = 5;
let queue_len_ptr = &queue_len as *const i32 as usize;
let ret = unsafe {
    nc::setsockopt(
        socket_fd,
        nc::IPPROTO_TCP,
        nc::TCP_FASTOPEN,
        queue_len_ptr,
        std::mem::size_of_val(&queue_len) as u32,
    )
};
assert!(ret.is_ok());
let ret = unsafe { nc::close(socket_fd) };
assert!(ret.is_ok());