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);