Mercurial > hg > nginx
diff src/os/unix/ngx_writev_chain.c @ 257:70e1c7d2b83d
nginx-0.0.2-2004-02-11-20:08:49 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Wed, 11 Feb 2004 17:08:49 +0000 |
parents | 34995c5ec6c4 |
children | 87e73f067470 |
line wrap: on
line diff
--- a/src/os/unix/ngx_writev_chain.c Tue Feb 10 16:23:38 2004 +0000 +++ b/src/os/unix/ngx_writev_chain.c Wed Feb 11 17:08:49 2004 +0000 @@ -22,6 +22,18 @@ return in; } +#if (HAVE_KQUEUE) + + if ((ngx_event_flags & NGX_HAVE_KQUEUE_EVENT) && wev->kq_eof) { + ngx_log_error(NGX_LOG_INFO, c->log, wev->kq_errno, + "kevent() reported about an closed connection"); + + wev->error = 1; + return NGX_CHAIN_ERROR; + } + +#endif + ngx_init_array(io, c->pool, 10, sizeof(struct iovec), NGX_CHAIN_ERROR); do { @@ -49,25 +61,26 @@ if (n == -1) { err = ngx_errno; - if (err == NGX_EAGAIN) { - ngx_log_error(NGX_LOG_INFO, c->log, err, "writev() EAGAIN"); - } else if (err == NGX_EINTR) { - eintr = 1; - ngx_log_error(NGX_LOG_INFO, c->log, err, "writev() EINTR"); + if (err == NGX_EAGAIN || err == NGX_EINTR) { + if (err == NGX_EINTR) { + eintr = 1; + } + + ngx_log_debug0(NGX_LOG_DEBUG_EVENT, c->log, err, + "writev() not ready"); } else { wev->error = 1; - ngx_log_error(NGX_LOG_CRIT, c->log, err, "writev() failed"); + ngx_connection_error(c, err, "writev() failed"); return NGX_CHAIN_ERROR; } } sent = n > 0 ? n : 0; -#if (NGX_DEBUG_WRITE_CHAIN) - ngx_log_debug(c->log, "writev: " OFF_T_FMT _ sent); -#endif + ngx_log_debug1(NGX_LOG_DEBUG_EVENT, c->log, 0, + "writev: " OFF_T_FMT, sent); c->sent += sent; @@ -75,8 +88,6 @@ size = cl->hunk->last - cl->hunk->pos; -ngx_log_debug(c->log, "SIZE: %d" _ size); - if (sent >= size) { sent -= size;