aboutsummaryrefslogtreecommitdiff
path: root/src/http/ngx_http_request.c
Commit message (Collapse)AuthorAge
* Merge of r4771: ngx_http_find_virtual_server() fix.Maxim Dounin2012-08-06
| | | | | The ngx_http_find_virtual_server() function should return NGX_DECLINED if virtual server not found.
* Merge of r4740: fixed $request_length for pipelined requests.Maxim Dounin2012-08-06
|
* Merge of r4698: X-Forwarded-For conditionals.Maxim Dounin2012-07-02
| | | | | | | | | Fixed compile-time conditionals used to detect if X-Forwarded-For support is needed. Note: compatibility shims were added during merge to avoid possible breakage of 3rd party modules. At least cache purge module was broken by the original commit, as it used to rely on NGX_HTTP_PROXY define.
* Merge of r4674, r4675, r4676: win32 fixes.Maxim Dounin2012-06-05
| | | | | | | | | | | | | | | | | | | | | | | | *) Win32: disallowed access to various non-canonical name variants. This includes trailings dots and spaces, NTFS streams (and short names, as previously checked). The checks are now also done in ngx_file_info(), thus allowing to use the "try_files" directive to protect external scripts. *) Win32: normalization of trailing dot inside uri. Windows treats "/directory./" identical to "/directory/". Do the same when working on Windows. Note that the behaviour is different from one with last path component (where multiple spaces and dots are ignored by Windows). *) Win32: uris with ":$" are now rejected. There are too many problems with special NTFS streams, notably "::$data", "::$index_allocation" and ":$i30:$index_allocation". For now we don't reject all URIs with ":" like Apache does as there are no good reasons seen yet, and there are multiple programs using it in URLs (e.g. MediaWiki).
* Merge of r4621, r4641: filter_finalize fixes.Maxim Dounin2012-06-04
| | | | | | | | | | | | | | | | *) Fixed possible request hang with filter finalization. With r->filter_finalize set the ngx_http_finalize_connection() wasn't called from ngx_http_finalize_request() called with NGX_OK, resulting in r->main->count not being decremented, thus causing request hang in some rare situations. Patch by Yichun Zhang (agentzh). *) Fixed segfault with filter_finalize introduced in r4621 (1.3.0). See the following thread for more details: http://mailman.nginx.org/pipermail/nginx-devel/2012-May/002190.html
* Merge of r4613: removed surplus condition.Maxim Dounin2012-06-04
|
* Fixed log->action after ssl handshake.Maxim Dounin2012-04-16
|
* Fixed grammar in error messages.Ruslan Ermilov2012-04-12
|
* Restricted keepalive_disable safari to OS X only.Maxim Dounin2012-03-22
| | | | | | | The problem doesn't affect non-Apple systems for sure, and many pretend to be Safari now. Prodded by Piotr Sikora.
* Core: protection from cycles with named locations and post_action.Maxim Dounin2012-02-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | Now redirects to named locations are counted against normal uri changes limit, and post_action respects this limit as well. As a result at least the following (bad) configurations no longer trigger infinite cycles: 1. Post action which recursively triggers post action: location / { post_action /index.html; } 2. Post action pointing to nonexistent named location: location / { post_action @nonexistent; } 3. Recursive error page for 500 (Internal Server Error) pointing to a nonexistent named location: location / { recursive_error_pages on; error_page 500 @nonexistent; return 500; }
* Core: protection from subrequest loops.Maxim Dounin2012-02-13
| | | | | | | | | | | | Without the protection, subrequest loop results in r->count overflow and SIGSEGV. Protection was broken in 0.7.25. Note that this also limits number of parallel subrequests. This wasn't exactly the case before 0.7.25 as local subrequests were completed directly. See here for details: http://nginx.org/pipermail/nginx-ru/2010-February/032184.html
* Copyright updated.Maxim Konovalov2012-01-18
|
* Added support for IP-literal in the Host header and request line (ticket #1).Valentin Bartenev2011-11-28
| | | | | | | | | | | | | | | | | | | | Additional parsing logic added to correctly handle RFC 3986 compliant IPv6 and IPvFuture characters enclosed in square brackets. The host validation was completely rewritten. The behavior for non IP literals was changed in a more proper and safer way: - Host part is now delimited either by the first colon or by the end of string if there's no colon. Previously the last colon was used as delimiter which allowed substitution of a port number in the $host variable. (e.g. Host: 127.0.0.1:9000:80) - Fixed stripping of the ending dot in the Host header when the host was also followed by a port number. (e.g. Host: nginx.com.:80) - Fixed upper case characters detection. Previously it was broken which led to wasting memory and CPU.
* Fixed segfault on ssl servers without cert with SNI (ticket #54).Maxim Dounin2011-11-22
| | | | | | Non-default servers may not have ssl context created if there are no certificate defined. Make sure to check if ssl context present before using it.
* Fix for socket leak with "aio sendfile" and "limit_rate".Maxim Dounin2011-10-11
| | | | | | | | | | | | | | | Second aio post happened when timer set by limit_rate expired while we have aio request in flight, resulting in "second aio post" alert and socket leak. The patch adds actual protection from aio calls with r->aio already set to aio sendfile code in ngx_http_copy_filter(). This should fix other cases as well, e.g. when sending buffered to disk upstream replies while still talking to upstream. The ngx_http_writer() is also fixed to handle the above case (though it's mostly optimization now). Reported by Oleksandr V. Typlyns'kyi.
* Fix for connection drops with AIO.Maxim Dounin2011-10-11
| | | | | Connections serving content with AIO to fast clients were dropped with "client timed out" messages after send_timeout from response start.
* Better handling of various per-server ssl options with SNI.Maxim Dounin2011-08-23
| | | | | | | | | | | | | | | | | | SSL_set_SSL_CTX() doesn't touch values cached within ssl connection structure, it only changes certificates (at least as of now, OpenSSL 1.0.0d and earlier). As a result settings like ssl_verify_client, ssl_verify_depth, ssl_prefer_server_ciphers are only configurable on per-socket basis while with SNI it should be possible to specify them different for two servers listening on the same socket. Workaround is to explicitly re-apply settings we care about from context to ssl connection in servername callback. Note that SSL_clear_options() is only available in OpenSSL 0.9.8m+. I.e. with older versions it is not possible to clear ssl_prefer_server_ciphers option if it's set in default server for a socket.
* always set timer in discard body handler, this fixes the casesIgor Sysoev2011-08-01
| | | | | | when request for static file is redirected by error_page to an SSI page patch by Maxim Dounin
* lingering_close "off|on|always"Igor Sysoev2011-08-01
| | | | patch by Maxim Dounin
* do not send RST on normal lingering close read timeout,Igor Sysoev2011-08-01
| | | | | | if reset_timedout_connection is on patch by Maxim Dounin
* enable lingering close for pipelined requestsIgor Sysoev2011-08-01
| | | | patch by Maxim Dounin
* Accept-Encoding refactoring: remove ancient MSIE 4.x test for gzipIgor Sysoev2011-07-30
|
* reuse keepalive connections if there are no free worker connectionsIgor Sysoev2011-04-04
| | | | patch by Maxim Dounin
* introduce 494 code "Request Header Too Large"Igor Sysoev2011-01-20
|
* "If-Unmodified-Since" supportIgor Sysoev2010-12-06
|
* fix recognition of SSLv2 Client Hello Packet large than 255 bytesIgor Sysoev2010-07-05
|
* allow spaces in URIIgor Sysoev2010-06-15
|
* test default NTFS stream "::$DATA"Igor Sysoev2010-06-04
|
* disable keepalive for Safari:Igor Sysoev2010-02-01
| | | | https://bugs.webkit.org/show_bug.cgi?id=5760
* skip URI trailing spaces under Win32Igor Sysoev2010-01-28
|
* Fix segfault when while discarding body a write event handler is called,Igor Sysoev2010-01-28
| | | | | | runs ngx_http_core_run_phases(), and starts a request processing again. The write event has clear type and remained in a keepalive connection. The bug was introduced in r3050.
* regex named capturesIgor Sysoev2009-11-16
|
* r->chromeIgor Sysoev2009-11-12
|
* fix segfault if there is single large_client_header_buffersIgor Sysoev2009-11-03
| | | | and a request line fills it completely
* do not run regex for empty host name since regex always fails in this case,Igor Sysoev2009-10-22
| | | | the bug had been introduced in r2196
* rename core_srv_conf fields to more understandable default_server and serverIgor Sysoev2009-10-21
|
* fix r3218:Igor Sysoev2009-10-21
| | | | | | | | | | | | | Initially building lists of ports, addresses, and server names had been placed at final configuration stage, because complete set of the "listen"s and the "server_names" were required for this operation. r3218 broke it, because the "listen"s go usually first in configuration, and cscf->server_names is empty at this stage, therefore no virtual names were configured. Now server configurations are stored in array for each address:port to configure virtual names. Also regex captures flag is moved from server names to core server configuration.
* fix two previous commits: an early parallel body discarding completionIgor Sysoev2009-10-20
| | | | disables incomplete ngx_http_writer()
* allow discarding body while a long response transferIgor Sysoev2009-10-19
|
* restore discard body handler after ngx_http_set_writer() set it toIgor Sysoev2009-10-19
| | | | ngx_http_test_reading(), the bug was introduced in r3050
* add lingering timeout if a response is short and a request body is beingIgor Sysoev2009-10-19
| | | | discarded, the bug was introduced in r3050
* clear r->keepalive to disable preventively callingIgor Sysoev2009-10-02
| | | | ngx_http_set_keepalive() while request cleanup
* log 499 instead 0, the bug was introduced in r3050Igor Sysoev2009-09-30
|
* update the previous commit: use ngx_strlow()Igor Sysoev2009-09-24
|
* $host is always in low case:Igor Sysoev2009-09-24
| | | | | | | *) move low case convertation from ngx_http_find_virtual_server() to ngx_http_validate_host() *) add in ngx_http_validate_host() capability to copy host name in the pool allocated memory
* fix request counter for post_action, the bug was introduced in r3050Igor Sysoev2009-09-21
|
* use %*s instead of %VIgor Sysoev2009-09-01
|
* *) ngx_http_ephemeralIgor Sysoev2009-08-30
| | | | *) use preallocated terminal_posted_request
* do not disable gzip for MSIE 6.0 SV1 in "gzip_disable msie6"Igor Sysoev2009-08-28
|
* FreeBSD and Linux AIO supportIgor Sysoev2009-08-28
|