You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
1.0 KiB
Groff
33 lines
1.0 KiB
Groff
4 years ago
|
.TH socket_accept6_makenonblocking_setcloseonexec 3
|
||
|
.SH 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
|
||
|
.nSH SYNTAX
|
||
|
.B #include <libowfat/socket.h>
|
||
|
|
||
|
int \fBsocket_accept6_makenonblocking_setcloseonexec\fP(int \fIs\fR,char \fIip\fR[4],uint16 *\fIport\fR,uint16* \fIscope_id\fR);
|
||
|
.SH DESCRIPTION
|
||
|
This is functionally equivalent to calling \fIsocket_accept6\fR and then
|
||
|
calling \fIndelay_on\fR and \fIio_tcloseonexec\fR on the returned socket.
|
||
|
|
||
|
However, if may save a syscall or two and in the process avoid a race
|
||
|
condition.
|
||
|
|
||
|
.SH EXAMPLE
|
||
|
#include <libowfat/socket.h>
|
||
|
|
||
|
int \fIs\fR;
|
||
|
char \fIip\fR[16];
|
||
|
uint16 \fIp\fR;
|
||
|
uint16 \fIscope_id\fR;
|
||
|
|
||
|
\fIs\fR = socket_tcp6();
|
||
|
socket_bind6(s,ip,p,scope_id);
|
||
|
socket_listen(s,16);
|
||
|
socket_accept6_makenonblocking_setcloseonexec(s,ip,&p,&scope_id);
|
||
|
|
||
|
.SH "SEE ALSO"
|
||
|
socket_accept6(3), socket_connected(3),
|
||
|
socket_accept6_makenonblocking(3),
|
||
|
socket_accept6_setcloseonexec(3),
|
||
|
socket_accept4_makenonblocking_setcloseonexec(3)
|