socket_accept6_makenonblocking_setcloseonexec - accept an IPv6 TCP connection on a socket and set it to non-blocking I/O and close-on-exec

NAME  DESCRIPTION  EXAMPLE  SEE ALSO 

NAME

socket_accept6_makenonblocking_setcloseonexec − accept an IPv6 TCP connection on a socket and set it to non-blocking I/O and close-on-exec #include <libowfat/socket.h>

int socket_accept6_makenonblocking_setcloseonexec(int s,char ip[4],uint16 *port,uint16* scope_id);

DESCRIPTION

This is functionally equivalent to calling socket_accept6 and then calling ndelay_on and io_tcloseonexec on the returned socket.

However, if may save a syscall or two and in the process avoid a race condition.

EXAMPLE

#include <libowfat/socket.h>

int s;
char ip[16];
uint16 p;
uint16 scope_id;

s = socket_tcp6();
socket_bind6(s,ip,p,scope_id);
socket_listen(s,16);
socket_accept6_makenonblocking_setcloseonexec(s,ip,&p,&scope_id);

SEE ALSO

socket_accept6(3), socket_connected(3), socket_accept6_makenonblocking(3), socket_accept6_setcloseonexec(3), socket_accept4_makenonblocking_setcloseonexec(3)


Updated 2024-01-29 - jenkler.se | uex.se