diff src/os/unix/ngx_freebsd_sendfile_chain.c @ 101:2e069b6e6920

nginx-0.0.1-2003-06-04-21:28:33 import
author Igor Sysoev <igor@sysoev.ru>
date Wed, 04 Jun 2003 17:28:33 +0000
parents a059e1aa65d4
children 6dfda4cf5200
line wrap: on
line diff
--- a/src/os/unix/ngx_freebsd_sendfile_chain.c
+++ b/src/os/unix/ngx_freebsd_sendfile_chain.c
@@ -105,17 +105,15 @@ ngx_chain_t *ngx_freebsd_sendfile_chain(
 
         if (file) {
 
-            if (!c->tcp_nopush && ngx_freebsd_tcp_nopush_flush) {
+            if (!c->tcp_nopush && c->tcp_nopush_enabled) {
                 c->tcp_nopush = 1;
                 tcp_nopush = 1;
-                if (setsockopt(c->fd, IPPROTO_TCP, TCP_NOPUSH,
-                               (const void *) &tcp_nopush,
-                               sizeof(int)) == -1)
-                {
-                    ngx_log_error(NGX_LOG_CRIT, c->log, ngx_errno,
-                                  "setsockopt(TCP_NOPUSH) failed");
+                if (ngx_tcp_nopush(c->fd) == NGX_ERROR) {
+                    ngx_log_error(NGX_LOG_CRIT, c->log, ngx_socket_errno,
+                                  ngx_tcp_nopush_n " failed");
                     return NGX_CHAIN_ERROR;
                 }
+ngx_log_debug(c->log, "NOPUSH");
             }
 
             hdtr.headers = (struct iovec *) header.elts;
@@ -222,21 +220,5 @@ ngx_chain_t *ngx_freebsd_sendfile_chain(
 
     } while ((tail && tail == ce) || eintr);
 
-    /* STUB: should be in app code, no need to clear TCP_NOPUSH
-             if the conneciton close()d or shutdown()ed */
-
-    if (c->tcp_nopush) {
-        c->tcp_nopush = 0;
-        tcp_nopush = 0;
-        if (setsockopt(c->fd, IPPROTO_TCP, TCP_NOPUSH,
-                       (const void *) &tcp_nopush,
-                       sizeof(int)) == -1)
-        {
-            ngx_log_error(NGX_LOG_CRIT, c->log, ngx_errno,
-                          "setsockopt(!TCP_NOPUSH) failed");
-            return NGX_CHAIN_ERROR;
-        }
-    }
-
     return ce;
 }