Mercurial > hg > nginx-quic
comparison src/os/win32/ngx_wsasend_chain.c @ 501:d4ea69372b94 release-0.1.25
nginx-0.1.25-RELEASE import
*) Bugfix: nginx did run on Linux parisc.
*) Feature: nginx now does not start under FreeBSD if the sysctl
kern.ipc.somaxconn value is too big.
*) Bugfix: if a request was internally redirected by the
ngx_http_index_module module to the ngx_http_proxy_module or
ngx_http_fastcgi_module modules, then the index file was not closed
after request completion.
*) Feature: the "proxy_pass" can be used in location with regular
expression.
*) Feature: the ngx_http_rewrite_filter_module module supports the
condition like "if ($HTTP_USER_AGENT ~ MSIE)".
*) Bugfix: nginx started too slow if the large number of addresses and
text values were used in the "geo" directive.
*) Change: a variable name must be declared as "$name" in the "geo"
directive. The previous variant without "$" is still supported, but
will be removed soon.
*) Feature: the "%{VARIABLE}v" logging parameter.
*) Feature: the "set $name value" directive.
*) Bugfix: gcc 4.0 compatibility.
*) Feature: the --with-openssl-opt=OPTIONS autoconfiguration directive.
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Sat, 19 Mar 2005 12:38:37 +0000 |
parents | 8e8f3af115b5 |
children | 4d9ea73a627a |
comparison
equal
deleted
inserted
replaced
500:9a0f304470f5 | 501:d4ea69372b94 |
---|---|
10 | 10 |
11 | 11 |
12 #define NGX_WSABUFS 8 | 12 #define NGX_WSABUFS 8 |
13 | 13 |
14 | 14 |
15 ngx_chain_t *ngx_wsasend_chain(ngx_connection_t *c, ngx_chain_t *in, | 15 ngx_chain_t * |
16 off_t limit) | 16 ngx_wsasend_chain(ngx_connection_t *c, ngx_chain_t *in, off_t limit) |
17 { | 17 { |
18 int rc; | 18 int rc; |
19 u_char *prev; | 19 u_char *prev; |
20 u_long size, sent, send, prev_send; | 20 u_long size, sent, send, prev_send; |
21 ngx_uint_t complete; | 21 ngx_uint_t complete; |
22 ngx_err_t err; | 22 ngx_err_t err; |
23 ngx_event_t *wev; | 23 ngx_event_t *wev; |
24 ngx_array_t vec; | 24 ngx_array_t vec; |
25 ngx_chain_t *cl; | |
25 LPWSABUF wsabuf; | 26 LPWSABUF wsabuf; |
26 WSABUF wsabufs[NGX_WSABUFS]; | 27 WSABUF wsabufs[NGX_WSABUFS]; |
27 ngx_chain_t *cl; | |
28 | 28 |
29 wev = c->write; | 29 wev = c->write; |
30 | 30 |
31 if (!wev->ready) { | 31 if (!wev->ready) { |
32 return in; | 32 return in; |
76 | 76 |
77 if (prev == cl->buf->pos) { | 77 if (prev == cl->buf->pos) { |
78 wsabuf->len += cl->buf->last - cl->buf->pos; | 78 wsabuf->len += cl->buf->last - cl->buf->pos; |
79 | 79 |
80 } else { | 80 } else { |
81 if (!(wsabuf = ngx_array_push(&vec))) { | 81 wsabuf = ngx_array_push(&vec); |
82 if (wsabuf == NULL) { | |
82 return NGX_CHAIN_ERROR; | 83 return NGX_CHAIN_ERROR; |
83 } | 84 } |
84 | 85 |
85 wsabuf->buf = (char *) cl->buf->pos; | 86 wsabuf->buf = (char *) cl->buf->pos; |
86 wsabuf->len = cl->buf->last - cl->buf->pos; | 87 wsabuf->len = cl->buf->last - cl->buf->pos; |
152 in = cl; | 153 in = cl; |
153 } | 154 } |
154 } | 155 } |
155 | 156 |
156 | 157 |
157 ngx_chain_t *ngx_overlapped_wsasend_chain(ngx_connection_t *c, ngx_chain_t *in, | 158 ngx_chain_t * |
158 off_t limit) | 159 ngx_overlapped_wsasend_chain(ngx_connection_t *c, ngx_chain_t *in, off_t limit) |
159 { | 160 { |
160 int rc; | 161 int rc; |
161 u_char *prev; | 162 u_char *prev; |
162 u_long size, send, sent; | 163 u_long size, send, sent; |
163 LPWSABUF wsabuf; | |
164 ngx_err_t err; | 164 ngx_err_t err; |
165 ngx_event_t *wev; | 165 ngx_event_t *wev; |
166 ngx_array_t vec; | 166 ngx_array_t vec; |
167 ngx_chain_t *cl; | 167 ngx_chain_t *cl; |
168 LPWSAOVERLAPPED ovlp; | 168 LPWSAOVERLAPPED ovlp; |
169 LPWSABUF wsabuf; | |
169 WSABUF wsabufs[NGX_WSABUFS]; | 170 WSABUF wsabufs[NGX_WSABUFS]; |
170 | 171 |
171 wev = c->write; | 172 wev = c->write; |
172 | 173 |
173 if (!wev->ready) { | 174 if (!wev->ready) { |
220 | 221 |
221 if (prev == cl->buf->pos) { | 222 if (prev == cl->buf->pos) { |
222 wsabuf->len += cl->buf->last - cl->buf->pos; | 223 wsabuf->len += cl->buf->last - cl->buf->pos; |
223 | 224 |
224 } else { | 225 } else { |
225 if (!(wsabuf = ngx_array_push(&vec))) { | 226 wsabuf = ngx_array_push(&vec); |
227 if (wsabuf == NULL) { | |
226 return NGX_CHAIN_ERROR; | 228 return NGX_CHAIN_ERROR; |
227 } | 229 } |
228 | 230 |
229 wsabuf->buf = (char *) cl->buf->pos; | 231 wsabuf->buf = (char *) cl->buf->pos; |
230 wsabuf->len = cl->buf->last - cl->buf->pos; | 232 wsabuf->len = cl->buf->last - cl->buf->pos; |