comparison src/http/ngx_http_request.c @ 562:7fa8dc2315bd NGINX_0_8_33

nginx 0.8.33 *) Security: now nginx/Windows ignores trailing spaces in URI. Thanks to Dan Crowley, Core Security Technologies. *) Security: now nginx/Windows ignores short files names. Thanks to Dan Crowley, Core Security Technologies. *) Change: now keepalive connections after POST requests are not disabled for MSIE 7.0+. Thanks to Adam Lounds. *) Workaround: now keepalive connections are disabled for Safari. Thanks to Joshua Sierles. *) Bugfix: if a proxied or FastCGI request was internally redirected to another proxied or FastCGI location, then $upstream_response_time variable may have abnormally large value; the bug had appeared in 0.8.7. *) Bugfix: a segmentation fault might occur in a worker process, while discarding a request body; the bug had appeared in 0.8.11.
author Igor Sysoev <http://sysoev.ru>
date Mon, 01 Feb 2010 00:00:00 +0000
parents e19e5f542878
children 01f2313e34f1
comparison
equal deleted inserted replaced
561:1763c9f30920 562:7fa8dc2315bd
786 { 786 {
787 u_char *p; 787 u_char *p;
788 788
789 p = r->uri.data + r->uri.len - 1; 789 p = r->uri.data + r->uri.len - 1;
790 790
791 if (*p == '.') { 791 if (*p == '.' || *p == ' ') {
792 792
793 while (--p > r->uri.data && *p == '.') { /* void */ } 793 while (--p > r->uri.data && (*p == '.' || *p == ' ')) {
794 /* void */
795 }
794 796
795 r->uri.len = p + 1 - r->uri.data; 797 r->uri.len = p + 1 - r->uri.data;
796 798
797 ngx_http_set_exten(r); 799 ngx_http_set_exten(r);
798 } 800 }
1446 r->headers_in.gecko = 1; 1448 r->headers_in.gecko = 1;
1447 1449
1448 } else if (ngx_strstrn(user_agent, "Chrome/", 7 - 1)) { 1450 } else if (ngx_strstrn(user_agent, "Chrome/", 7 - 1)) {
1449 r->headers_in.chrome = 1; 1451 r->headers_in.chrome = 1;
1450 1452
1453 } else if (ngx_strstrn(user_agent, "Safari/", 7 - 1)) {
1454 r->headers_in.safari = 1;
1455
1451 } else if (ngx_strstrn(user_agent, "Konqueror", 9 - 1)) { 1456 } else if (ngx_strstrn(user_agent, "Konqueror", 9 - 1)) {
1452 r->headers_in.konqueror = 1; 1457 r->headers_in.konqueror = 1;
1453 } 1458 }
1454 } 1459 }
1455 1460
1995 &r->uri, &r->args); 2000 &r->uri, &r->args);
1996 return; 2001 return;
1997 } 2002 }
1998 2003
1999 r->done = 1; 2004 r->done = 1;
2005 r->write_event_handler = ngx_http_request_empty_handler;
2000 2006
2001 if (!r->post_action) { 2007 if (!r->post_action) {
2002 r->request_complete = 1; 2008 r->request_complete = 1;
2003 } 2009 }
2004 2010