Mercurial > hg > nginx-ranges
comparison src/http/ngx_http_request.c @ 342:4276c2f1f434 NGINX_0_6_15
nginx 0.6.15
*) Feature: cygwin compatibility.
Thanks to Vladimir Kutakov.
*) Feature: the "merge_slashes" directive.
*) Feature: the "gzip_vary" directive.
*) Feature: the "server_tokens" directive.
*) Bugfix: nginx did not unescape URI in the "include" SSI command.
*) Bugfix: the segmentation fault was occurred on start or while
reconfiguration if variable was used in the "charset" or
"source_charset" directives.
*) Bugfix: nginx returned the 400 response on requests like
"GET http://www.domain.com HTTP/1.0".
Thanks to James Oakley.
*) Bugfix: if request with request body was redirected using the
"error_page" directive, then nginx tried to read the request body
again; bug appeared in 0.6.7.
*) Bugfix: a segmentation fault occurred in worker process if no
server_name was explicitly defined for server processing request;
bug appeared in 0.6.7.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Mon, 22 Oct 2007 00:00:00 +0400 |
parents | 10cc350ed8a1 |
children | 05693816539c |
comparison
equal
deleted
inserted
replaced
341:183b4761fe5b | 342:4276c2f1f434 |
---|---|
600 | 600 |
601 | 601 |
602 static void | 602 static void |
603 ngx_http_process_request_line(ngx_event_t *rev) | 603 ngx_http_process_request_line(ngx_event_t *rev) |
604 { | 604 { |
605 ssize_t n; | 605 ssize_t n; |
606 ngx_int_t rc, rv; | 606 ngx_int_t rc, rv; |
607 ngx_connection_t *c; | 607 ngx_connection_t *c; |
608 ngx_http_request_t *r; | 608 ngx_http_request_t *r; |
609 ngx_http_core_srv_conf_t *cscf; | |
609 | 610 |
610 c = rev->data; | 611 c = rev->data; |
611 r = c->data; | 612 r = c->data; |
612 | 613 |
613 ngx_log_debug0(NGX_LOG_DEBUG_HTTP, rev->log, 0, | 614 ngx_log_debug0(NGX_LOG_DEBUG_HTTP, rev->log, 0, |
655 if (r->uri.data == NULL) { | 656 if (r->uri.data == NULL) { |
656 ngx_http_close_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR); | 657 ngx_http_close_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR); |
657 return; | 658 return; |
658 } | 659 } |
659 | 660 |
660 rc = ngx_http_parse_complex_uri(r); | 661 cscf = ngx_http_get_module_srv_conf(r, ngx_http_core_module); |
662 | |
663 rc = ngx_http_parse_complex_uri(r, cscf->merge_slashes); | |
661 | 664 |
662 if (rc == NGX_HTTP_PARSE_INVALID_REQUEST) { | 665 if (rc == NGX_HTTP_PARSE_INVALID_REQUEST) { |
663 ngx_log_error(NGX_LOG_INFO, c->log, 0, | 666 ngx_log_error(NGX_LOG_INFO, c->log, 0, |
664 "client sent invalid request"); | 667 "client sent invalid request"); |
665 ngx_http_finalize_request(r, NGX_HTTP_BAD_REQUEST); | 668 ngx_http_finalize_request(r, NGX_HTTP_BAD_REQUEST); |