Mercurial > hg > nginx-vendor-1-0
comparison src/http/modules/proxy/ngx_http_proxy_header.c @ 2:cc9f381affaa NGINX_0_1_1
nginx 0.1.1
*) Feature: the gzip_types directive.
*) Feature: the tcp_nodelay directive.
*) Feature: the send_lowat directive is working not only on OSes that
support kqueue NOTE_LOWAT, but also on OSes that support SO_SNDLOWAT.
*) Feature: the setproctitle() emulation for Linux and Solaris.
*) Bugfix: the "Location" header rewrite bug fixed while the proxying.
*) Bugfix: the ngx_http_chunked_module module may get caught in an
endless loop.
*) Bugfix: the /dev/poll module bugs fixed.
*) Bugfix: the responses were corrupted when the temporary files were
used while the proxying.
*) Bugfix: the unescaped requests were passed to the backend.
*) Bugfix: while the build configuration on Linux 2.4 the
--with-poll_module parameter was required.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Mon, 11 Oct 2004 00:00:00 +0400 |
parents | f0b350454894 |
children | 4b2dafa26fe2 |
comparison
equal
deleted
inserted
replaced
1:80bdda0151b0 | 2:cc9f381affaa |
---|---|
162 | 162 |
163 if (!(location = ngx_list_push(&r->headers_out.headers))) { | 163 if (!(location = ngx_list_push(&r->headers_out.headers))) { |
164 return NGX_ERROR; | 164 return NGX_ERROR; |
165 } | 165 } |
166 | 166 |
167 /* | |
168 * we do not set r->headers_out.location to avoid the handling | |
169 * the local redirects without a host name by ngx_http_header_filter() | |
170 */ | |
171 | |
172 #if 0 | |
173 r->headers_out.location = location; | |
174 #endif | |
175 | |
176 if (uc->url.len > loc->value.len | 167 if (uc->url.len > loc->value.len |
177 || ngx_rstrncmp(loc->value.data, uc->url.data, uc->url.len) != 0) | 168 || ngx_rstrncmp(loc->value.data, uc->url.data, uc->url.len) != 0) |
178 { | 169 { |
170 | |
171 /* | |
172 * we do not set r->headers_out.location here to avoid the handling | |
173 * the local redirects without a host name by ngx_http_header_filter() | |
174 */ | |
175 | |
179 *location = *loc; | 176 *location = *loc; |
180 return NGX_OK; | 177 return NGX_OK; |
181 } | 178 } |
182 | 179 |
183 /* TODO: proxy_reverse */ | 180 /* TODO: proxy_reverse */ |
181 | |
182 r->headers_out.location = location; | |
183 | |
184 location->key.len = 0; | |
185 location->key.data = NULL; | |
184 | 186 |
185 location->value.len = uc->location->len | 187 location->value.len = uc->location->len |
186 + (loc->value.len - uc->url.len) + 1; | 188 + (loc->value.len - uc->url.len) + 1; |
187 if (!(location->value.data = ngx_palloc(r->pool, location->value.len))) { | 189 if (!(location->value.data = ngx_palloc(r->pool, location->value.len))) { |
188 return NGX_ERROR; | 190 return NGX_ERROR; |