diff --git a/socket/socket_accept4_setcloseonexec.3 b/socket/socket_accept4_setcloseonexec.3 index a7d8b95..cb4385c 100644 --- a/socket/socket_accept4_setcloseonexec.3 +++ b/socket/socket_accept4_setcloseonexec.3 @@ -26,6 +26,5 @@ condition. .SH "SEE ALSO" socket_accept4(3), socket_connected(3), -socket_accept4_makenonblocking(3), socket_accept6_setcloseonexec(3), socket_accept4_makenonblocking_setcloseonexec(3) diff --git a/socket/socket_accept6_makenonblocking_setcloseonexec.3 b/socket/socket_accept6_makenonblocking_setcloseonexec.3 new file mode 100644 index 0000000..80656bd --- /dev/null +++ b/socket/socket_accept6_makenonblocking_setcloseonexec.3 @@ -0,0 +1,32 @@ +.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 + +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 + + 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) diff --git a/socket/socket_accept6_setcloseonexec.3 b/socket/socket_accept6_setcloseonexec.3 new file mode 100644 index 0000000..a2876cc --- /dev/null +++ b/socket/socket_accept6_setcloseonexec.3 @@ -0,0 +1,31 @@ +.TH socket_accept6_setcloseonexec 3 +.SH NAME +socket_accept6_setcloseonexec \- accept an IPv6 TCP connection on a socket +.SH SYNTAX +.B #include + +int \fBsocket_accept6_setcloseonexec\fP(int \fIs\fR,char \fIip\fR[16],uint16 *\fIport\fR,uint32 *\fIscope_id\fR); +.SH DESCRIPTION +This is functionally equivalent to calling \fIsocket_accept4\fR and then +calling \fIio_closeonexec\fR on the returned socket. + +However, if may save a syscall or two and in the process avoid a race +condition. + +.SH EXAMPLE + #include + + int \fIs\fR; + char \fIip\fR[16]; + uint16 \fIport\fR; + uint32 \fIscope_id\fR; + + \fIs\fR = socket_tcp6(); + socket_bind6(s,ip,port,scope_id); + socket_listen(s,16); + socket_accept6_setcloseonexec(s,ip,&port,&scope_id); + +.SH "SEE ALSO" +socket_accept6(3), socket_connected(3), +socket_accept4_setcloseonexec(3), +socket_accept6_makenonblocking_setcloseonexec(3)