diff options
Diffstat (limited to 'src/event/ngx_event_write.c')
-rw-r--r-- | src/event/ngx_event_write.c | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/src/event/ngx_event_write.c b/src/event/ngx_event_write.c index 97c082771..ccbb1579b 100644 --- a/src/event/ngx_event_write.c +++ b/src/event/ngx_event_write.c @@ -98,23 +98,20 @@ ngx_chain_t *ngx_event_write(ngx_connection_t *c, ngx_chain_t *in, (ngx_iovec_t *) trailer->elts, trailer->nelts, &sent, c->log); } else { - size_t sendv_sent; + rc = ngx_sendv(c, (ngx_iovec_t *) header->elts, + header->nelts); + + sent = rc > 0 ? rc: 0; - sendv_sent = 0; - rc = ngx_sendv(c->fd, (ngx_iovec_t *) header->elts, - header->nelts, &sendv_sent); - sent = sendv_sent; ngx_log_debug(c->log, "sendv: " QD_FMT _ sent); } #if (HAVE_MAX_SENDFILE_IOVEC) } #endif - /* save sent for logging */ - if (rc == NGX_ERROR) - return (ngx_chain_t *) -1; + return (ngx_chain_t *) NGX_ERROR; - c->sent = sent; + c->sent += sent; flush -= sent; for (ch = in; ch; ch = ch->next) { |