Mercurial > hg > nginx
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; }