diff options
author | Igor Sysoev <igor@sysoev.ru> | 2003-02-06 17:21:13 +0000 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2003-02-06 17:21:13 +0000 |
commit | 7300977320e04280c13d4d89a279f75af9c5f893 (patch) | |
tree | 6c935b625eb2dbd83e71e5b2e23ac83bfd88aded /src/os/unix/ngx_socket.c | |
parent | 2a2d2b5094ee88dba5984eddfc4135b66bb8007e (diff) | |
download | nginx-7300977320e04280c13d4d89a279f75af9c5f893.tar.gz nginx-7300977320e04280c13d4d89a279f75af9c5f893.zip |
nginx-0.0.1-2003-02-06-20:21:13 import
Diffstat (limited to 'src/os/unix/ngx_socket.c')
-rw-r--r-- | src/os/unix/ngx_socket.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/os/unix/ngx_socket.c b/src/os/unix/ngx_socket.c new file mode 100644 index 000000000..d213fa86f --- /dev/null +++ b/src/os/unix/ngx_socket.c @@ -0,0 +1,26 @@ + +#include <ngx_socket.h> + + +/* ioctl(FIONBIO) set blocking mode with one syscall only while + fcntl(F_SETFL, ~O_NONBLOCK) need to know previous state + using fcntl(F_GETFL). + On FreeBSD both are syscall */ + +#ifdef __FreeBSD__ + +int ngx_nonblocking(ngx_socket_t s) +{ + unsigned long nb = 1; + + return ioctl(s, FIONBIO, &nb); +} + +int ngx_blocking(ngx_socket_t s) +{ + unsigned long nb = 0; + + return ioctl(s, FIONBIO, &nb); +} + +#endif |