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());