Mercurial > hg > nginx
comparison src/http/ngx_http_request_body.c @ 665:5fd7a5e99047 release-0.3.54
nginx-0.3.54-RELEASE import
*) Feature: nginx now logs the subrequest information to the error log.
*) Feature: the "proxy_next_upstream", "fastcgi_next_upstream", and
"memcached_next_upstream" directives support the "off" parameter.
*) Feature: the "debug_connection" directive supports the CIDR address
form.
*) Bugfix: if a response of proxied server or FastCGI server was
converted from UTF-8 or back, then it may be transferred incomplete.
*) Bugfix: the $upstream_response_time variable had the time of the
first request to a backend only.
*) Bugfix: nginx could not be built on amd64 platform; the bug had
appeared in 0.3.53.
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Tue, 11 Jul 2006 13:20:19 +0000 |
parents | 6d5c1535bb9d |
children | 63a820b0bc6c |
comparison
equal
deleted
inserted
replaced
664:db08f60f873f | 665:5fd7a5e99047 |
---|---|
90 } | 90 } |
91 | 91 |
92 rb->bufs->buf = b; | 92 rb->bufs->buf = b; |
93 rb->bufs->next = NULL; | 93 rb->bufs->next = NULL; |
94 | 94 |
95 if (preread >= r->headers_in.content_length_n) { | 95 if ((off_t) preread >= r->headers_in.content_length_n) { |
96 | 96 |
97 /* the whole request body was pre-read */ | 97 /* the whole request body was pre-read */ |
98 | 98 |
99 r->header_in->pos += (size_t) r->headers_in.content_length_n; | 99 r->header_in->pos += (size_t) r->headers_in.content_length_n; |
100 r->request_length += r->headers_in.content_length_n; | 100 r->request_length += r->headers_in.content_length_n; |
118 | 118 |
119 r->request_length += preread; | 119 r->request_length += preread; |
120 | 120 |
121 rb->rest = r->headers_in.content_length_n - preread; | 121 rb->rest = r->headers_in.content_length_n - preread; |
122 | 122 |
123 if (rb->rest <= (size_t) (b->end - b->last)) { | 123 if (rb->rest <= (off_t) (b->end - b->last)) { |
124 | 124 |
125 /* the whole request body may be placed in r->header_in */ | 125 /* the whole request body may be placed in r->header_in */ |
126 | 126 |
127 rb->buf = b; | 127 rb->buf = b; |
128 | 128 |
240 rb->buf->last = rb->buf->start; | 240 rb->buf->last = rb->buf->start; |
241 } | 241 } |
242 | 242 |
243 size = rb->buf->end - rb->buf->last; | 243 size = rb->buf->end - rb->buf->last; |
244 | 244 |
245 if (size > rb->rest) { | 245 if ((off_t) size > rb->rest) { |
246 size = (size_t) rb->rest; | 246 size = (size_t) rb->rest; |
247 } | 247 } |
248 | 248 |
249 n = c->recv(c, rb->buf->last, size); | 249 n = c->recv(c, rb->buf->last, size); |
250 | 250 |