nginx-0.0.1-2003-06-04-21:28:33 import
diff --git a/src/os/unix/ngx_socket.c b/src/os/unix/ngx_socket.c
index 0746fa0..941fc8c 100644
--- a/src/os/unix/ngx_socket.c
+++ b/src/os/unix/ngx_socket.c
@@ -1,5 +1,6 @@
-#include <ngx_socket.h>
+#include <ngx_config.h>
+#include <ngx_core.h>
/*
@@ -10,7 +11,8 @@
ioctl() and fcntl() are syscalls on FreeBSD, Solaris 7/8 and Linux
*/
-#if 1
+
+#if (HAVE_FIONBIO)
int ngx_nonblocking(ngx_socket_t s)
{
@@ -19,6 +21,7 @@
return ioctl(s, FIONBIO, &nb);
}
+
int ngx_blocking(ngx_socket_t s)
{
unsigned long nb = 0;
@@ -27,3 +30,42 @@
}
#endif
+
+
+#ifdef __FreeBSD__
+
+int ngx_tcp_nopush(ngx_socket_t s)
+{
+ int tcp_nopush;
+
+ tcp_nopush = 1;
+
+ return setsockopt(s, IPPROTO_TCP, TCP_NOPUSH,
+ (const void *) &tcp_nopush, sizeof(int));
+}
+
+
+int ngx_tcp_push(ngx_socket_t s)
+{
+ int tcp_nopush;
+
+ tcp_nopush = 0;
+
+ return setsockopt(s, IPPROTO_TCP, TCP_NOPUSH,
+ (const void *) &tcp_nopush, sizeof(int));
+}
+
+#else
+
+
+int ngx_tcp_nopush(ngx_socket_t s)
+{
+ return NGX_OK;
+}
+
+int ngx_tcp_push(ngx_socket_t s)
+{
+ return NGX_OK;
+}
+
+#endif