Mercurial > hg > nginx
comparison 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 |
comparison
equal
deleted
inserted
replaced
25:a8b156554dfe | 26:53cb81681040 |
---|---|
4 #include <ngx_errno.h> | 4 #include <ngx_errno.h> |
5 #include <ngx_connection.h> | 5 #include <ngx_connection.h> |
6 #include <ngx_log.h> | 6 #include <ngx_log.h> |
7 #include <ngx_sendv.h> | 7 #include <ngx_sendv.h> |
8 | 8 |
9 #include <ngx_string.h> | |
10 | |
9 ssize_t ngx_sendv(ngx_connection_t *c, ngx_iovec_t *iovec, int n) | 11 ssize_t ngx_sendv(ngx_connection_t *c, ngx_iovec_t *iovec, int n) |
10 { | 12 { |
11 int rc; | 13 int rc; |
12 size_t sent; | 14 size_t sent; |
13 ngx_err_t err; | 15 ngx_err_t err; |
14 | 16 |
15 ngx_log_debug(c->log, "WSASend() start"); | 17 #if 0 |
18 /* STUB: WSABUF must be 4-byte aligned. Undocumented WSAEINVAL error */ | |
19 ngx_iovec_t iov[10]; | |
20 ngx_memcpy(iov, iovec, n * sizeof(ngx_iovec_t)); | |
21 #endif | |
16 | 22 |
17 rc = WSASend(c->fd, iovec, n, &sent, 0, NULL, NULL); | 23 sent = 0; |
18 | 24 |
19 ngx_log_debug(c->log, "WSASend() done"); | 25 ngx_log_debug(c->log, "WSASend: %d, %d, %08x" _ c->fd _ n _ iovec); |
20 | 26 |
21 if (rc == -1) { | 27 rc = WSASend(c->fd, iovec, n, &sent, 0, NULL, NULL); |
22 err = ngx_socket_errno; | |
23 | 28 |
24 if (err == NGX_EAGAIN) { | 29 ngx_log_debug(c->log, "WSASend() done"); |
25 ngx_log_error(NGX_LOG_INFO, c->log, err, "WSASend() eagain"); | |
26 return NGX_AGAIN; | |
27 } | |
28 | 30 |
29 ngx_log_error(NGX_LOG_ERR, c->log, err, "WSASend() failed"); | 31 if (rc == SOCKET_ERROR) { |
30 return NGX_ERROR; | 32 err = ngx_socket_errno; |
31 } | |
32 | 33 |
33 return sent; | 34 if (err == NGX_EAGAIN) { |
35 ngx_log_error(NGX_LOG_INFO, c->log, err, "WSASend() eagain"); | |
36 return NGX_AGAIN; | |
37 } | |
38 | |
39 ngx_log_error(NGX_LOG_ERR, c->log, err, "WSASend() failed"); | |
40 return NGX_ERROR; | |
41 } | |
42 | |
43 return sent; | |
34 } | 44 } |