Mercurial > hg > nginx
diff src/os/unix/ngx_sendv.c @ 9:6f58641241bb
nginx-0.0.1-2002-09-07-14:14:25 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Sat, 07 Sep 2002 10:14:25 +0000 |
parents | 708f8bb772ec |
children | 53cb81681040 |
line wrap: on
line diff
--- a/src/os/unix/ngx_sendv.c +++ b/src/os/unix/ngx_sendv.c @@ -1,18 +1,28 @@ #include <ngx_core.h> #include <ngx_types.h> -#include <ngx_socket.h> +#include <ngx_errno.h> +#include <ngx_connection.h> +#include <ngx_log.h> #include <ngx_sendv.h> -ssize_t ngx_sendv(ngx_socket_t s, ngx_iovec_t *iovec, int n, size_t *sent) +ssize_t ngx_sendv(ngx_connection_t *c, ngx_iovec_t *iovec, int n) { ssize_t rc; + ngx_err_t err; - rc = writev(s, iovec, n); + rc = writev(c->fd, iovec, n); - if (rc == -1) + if (rc == -1) { + err = ngx_socket_errno; + if (err == NGX_EAGAIN) { + ngx_log_error(NGX_LOG_INFO, c->log, err, "sendv() eagain"); + return NGX_AGAIN; + } + + ngx_log_error(NGX_LOG_ERR, c->log, err, "sendv() failed"); return NGX_ERROR; + } - *sent = rc; - return NGX_OK; + return rc; }