Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nginx/nginx.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2003-02-06 20:21:13 +0300
committerIgor Sysoev <igor@sysoev.ru>2003-02-06 20:21:13 +0300
commit7300977320e04280c13d4d89a279f75af9c5f893 (patch)
tree6c935b625eb2dbd83e71e5b2e23ac83bfd88aded /src/os/unix/ngx_socket.c
parent2a2d2b5094ee88dba5984eddfc4135b66bb8007e (diff)
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.c26
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