add socket_set_nonblocking
This commit is contained in:
@@ -401,6 +401,10 @@ socket_set_debug (rk_socket_t);
|
|||||||
ROKEN_LIB_FUNCTION void ROKEN_LIB_CALL
|
ROKEN_LIB_FUNCTION void ROKEN_LIB_CALL
|
||||||
socket_set_tos (rk_socket_t, int);
|
socket_set_tos (rk_socket_t, int);
|
||||||
|
|
||||||
|
#define socket_set_nonblocking rk_socket_set_nonblocking
|
||||||
|
ROKEN_LIB_FUNCTION void ROKEN_LIB_CALL
|
||||||
|
socket_set_nonblocking(rk_socket_t, int);
|
||||||
|
|
||||||
#define socket_set_reuseaddr rk_socket_set_reuseaddr
|
#define socket_set_reuseaddr rk_socket_set_reuseaddr
|
||||||
ROKEN_LIB_FUNCTION void ROKEN_LIB_CALL
|
ROKEN_LIB_FUNCTION void ROKEN_LIB_CALL
|
||||||
socket_set_reuseaddr (rk_socket_t, int);
|
socket_set_reuseaddr (rk_socket_t, int);
|
||||||
|
@@ -259,6 +259,29 @@ socket_set_tos (rk_socket_t sock, int tos)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set the non-blocking-ness of the socket.
|
||||||
|
*/
|
||||||
|
|
||||||
|
ROKEN_LIB_FUNCTION void ROKEN_LIB_CALL
|
||||||
|
socket_set_nonblocking(rk_socket_t sock, int nonblock)
|
||||||
|
{
|
||||||
|
int flags;
|
||||||
|
#if defined(O_NONBLOCK)
|
||||||
|
flags = fcntl(sock, F_GETFL, 0);
|
||||||
|
if (flags == -1)
|
||||||
|
return;
|
||||||
|
if (nonblock)
|
||||||
|
flags |= O_NONBLOCK;
|
||||||
|
else
|
||||||
|
flags &= ~O_NONBLOCK;
|
||||||
|
fcntl(sock, F_SETFL, flags);
|
||||||
|
#elif defined(FIOBIO)
|
||||||
|
flags = !!nonblock;
|
||||||
|
return ioctl(sock, FIOBIO, &flags);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* set the reuse of addresses on `sock' to `val'.
|
* set the reuse of addresses on `sock' to `val'.
|
||||||
*/
|
*/
|
||||||
|
Reference in New Issue
Block a user