Mercurial > hg > nginx
comparison src/http/modules/ngx_http_index_module.c @ 573:58475592100c release-0.3.8
nginx-0.3.8-RELEASE import
*) Security: nginx now checks URI got from a backend in
"X-Accel-Redirect" header line or in SSI file for the "/../" paths
and zeroes.
*) Change: nginx now does not treat the empty user name in the
"Authorization" header line as valid one.
*) Feature: the "ssl_session_timeout" directives of the
ngx_http_ssl_module and ngx_imap_ssl_module.
*) Feature: the "auth_http_header" directive of the
ngx_imap_auth_http_module.
*) Feature: the "add_header" directive.
*) Feature: the ngx_http_realip_module.
*) Feature: the new variables to use in the "log_format" directive:
$bytes_sent, $apache_bytes_sent, $status, $time_gmt, $uri,
$request_time, $request_length, $upstream_status,
$upstream_response_time, $gzip_ratio, $uid_got, $uid_set,
$connection, $pipe, and $msec. The parameters in the "%name" form
will be canceled soon.
*) Change: now the false variable values in the "if" directive are the
empty string "" and string starting with "0".
*) Bugfix: while using proxied or FastCGI-server nginx may leave
connections and temporary files with client requests in open state.
*) Bugfix: the worker processes did not flush the buffered logs on
graceful exit.
*) Bugfix: if the request URI was changes by the "rewrite" directive
and the request was proxied in location given by regular expression,
then the incorrect request was transferred to backend; the bug had
appeared in 0.2.6.
*) Bugfix: the "expires" directive did not remove the previous
"Expires" header.
*) Bugfix: nginx may stop to accept requests if the "rtsig" method and
several worker processes were used.
*) Bugfix: the "\"" and "\'" escape symbols were incorrectly handled in
SSI commands.
*) Bugfix: if the response was ended just after the SSI command and
gzipping was used, then the response did not transferred complete or
did not transferred at all.
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Wed, 09 Nov 2005 17:25:55 +0000 |
parents | 9c2f3ed7a247 |
children | 4d9ea73a627a |
comparison
equal
deleted
inserted
replaced
572:ae8920455206 | 573:58475592100c |
---|---|
178 } else { | 178 } else { |
179 ngx_memzero(&e, sizeof(ngx_http_script_engine_t)); | 179 ngx_memzero(&e, sizeof(ngx_http_script_engine_t)); |
180 | 180 |
181 e.ip = index[i].lengths->elts; | 181 e.ip = index[i].lengths->elts; |
182 e.request = r; | 182 e.request = r; |
183 e.flushed = 1; | |
183 | 184 |
184 /* 1 byte for terminating '\0' */ | 185 /* 1 byte for terminating '\0' */ |
185 | 186 |
186 len = 1; | 187 len = 1; |
187 | 188 |
296 uri.data = ngx_palloc(r->pool, uri.len); | 297 uri.data = ngx_palloc(r->pool, uri.len); |
297 if (uri.data == NULL) { | 298 if (uri.data == NULL) { |
298 return NGX_HTTP_INTERNAL_SERVER_ERROR; | 299 return NGX_HTTP_INTERNAL_SERVER_ERROR; |
299 } | 300 } |
300 | 301 |
301 last = ngx_cpymem(uri.data, r->uri.data, r->uri.len); | 302 last = ngx_copy(uri.data, r->uri.data, r->uri.len); |
302 ngx_memcpy(last, ctx->index.data, ctx->index.len - 1); | 303 ngx_memcpy(last, ctx->index.data, ctx->index.len - 1); |
303 } | 304 } |
304 | 305 |
305 return ngx_http_internal_redirect(r, &uri, &r->args); | 306 return ngx_http_internal_redirect(r, &uri, &r->args); |
306 } | 307 } |
474 && ilcf->max_index_len < index->name.len) | 475 && ilcf->max_index_len < index->name.len) |
475 { | 476 { |
476 ilcf->max_index_len = index->name.len; | 477 ilcf->max_index_len = index->name.len; |
477 } | 478 } |
478 | 479 |
479 /* include the terminating '\0' to the length to use ngx_memcpy() */ | 480 /* include the terminating '\0' to the length to use ngx_copy() */ |
480 index->name.len++; | 481 index->name.len++; |
481 | 482 |
482 continue; | 483 continue; |
483 } | 484 } |
484 | 485 |