Mercurial > hg > nginx
diff src/os/win32/ngx_sendv.c @ 26:53cb81681040
nginx-0.0.1-2002-12-15-09:25:09 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Sun, 15 Dec 2002 06:25:09 +0000 |
parents | 6f58641241bb |
children | cd035a94e0b6 |
line wrap: on
line diff
--- a/src/os/win32/ngx_sendv.c +++ b/src/os/win32/ngx_sendv.c @@ -6,29 +6,39 @@ #include <ngx_log.h> #include <ngx_sendv.h> +#include <ngx_string.h> + ssize_t ngx_sendv(ngx_connection_t *c, ngx_iovec_t *iovec, int n) { - int rc; - size_t sent; - ngx_err_t err; + int rc; + size_t sent; + ngx_err_t err; - ngx_log_debug(c->log, "WSASend() start"); +#if 0 + /* STUB: WSABUF must be 4-byte aligned. Undocumented WSAEINVAL error */ + ngx_iovec_t iov[10]; + ngx_memcpy(iov, iovec, n * sizeof(ngx_iovec_t)); +#endif - rc = WSASend(c->fd, iovec, n, &sent, 0, NULL, NULL); + sent = 0; - ngx_log_debug(c->log, "WSASend() done"); + ngx_log_debug(c->log, "WSASend: %d, %d, %08x" _ c->fd _ n _ iovec); + + rc = WSASend(c->fd, iovec, n, &sent, 0, NULL, NULL); - if (rc == -1) { - err = ngx_socket_errno; + ngx_log_debug(c->log, "WSASend() done"); + + if (rc == SOCKET_ERROR) { + err = ngx_socket_errno; - if (err == NGX_EAGAIN) { - ngx_log_error(NGX_LOG_INFO, c->log, err, "WSASend() eagain"); - return NGX_AGAIN; - } + if (err == NGX_EAGAIN) { + ngx_log_error(NGX_LOG_INFO, c->log, err, "WSASend() eagain"); + return NGX_AGAIN; + } - ngx_log_error(NGX_LOG_ERR, c->log, err, "WSASend() failed"); - return NGX_ERROR; - } + ngx_log_error(NGX_LOG_ERR, c->log, err, "WSASend() failed"); + return NGX_ERROR; + } - return sent; + return sent; }