aboutsummaryrefslogtreecommitdiff
path: root/src/http/ngx_http_request.c
Commit message (Collapse)AuthorAge
* Merging r4195, r4196:Igor Sysoev2011-11-01
| | | | | | | | | | | | | | | | | | | | | | AIO related fixes: *) Fix for connection drops with AIO. Connections serving content with AIO to fast clients were dropped with "client timed out" messages after send_timeout from response start. *) Fix for socket leak with "aio sendfile" and "limit_rate". 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).
* Merging r4034, r4186, r4187, r4229, r4235, r4237:Igor Sysoev2011-11-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SSL related fixes: *) Better handling of various per-server ssl options with SNI. 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. *) Disabling SSL compression. This saves about 300K per SSL connection. The SSL_OP_NO_COMPRESSION option is available since OpenSSL 1.0.0. *) Releasing memory of idle SSL connection. This saves about 34K per SSL connection. The SSL_MODE_RELEASE_BUFFERS option is available since OpenSSL 1.0.0d. *) Decrease of log level of some SSL handshake errors. *) Fixed segfault on configuration testing with ssl (ticket #37). The following config caused segmentation fault due to conf->file not being properly set if "ssl on" was inherited from the http level: http { ssl on; server { } } *) Silently ignoring a stale global SSL error left after disabled renegotiation.
* Merging r3986, r4006, r4007, r4073:Igor Sysoev2011-09-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | Request body related fixes: *) Always set timer in discard body handler, this fixes the cases when request for static file is redirected by error_page to an SSI page. *) Correctly set body if it's preread and there are extra data. Previously all available data was used as body, resulting in garbage after real body e.g. in case of pipelined requests. Make sure to use only as many bytes as request's Content-Length specifies. *) Fix body with request_body_in_single_buf. If there were preread data and request body was big enough first part of the request body was duplicated. See report here: http://mailman.nginx.org/pipermail/nginx/2011-July/027756.html *) Bugfix: read event was not blocked after reading body. Read event should be blocked after reading body, else undefined behaviour might occur on additional client activity. This fixes segmentation faults observed with proxy_ignore_client_abort set.
* Merge of r3982, r3984, r3985, r3991:Igor Sysoev2011-08-29
| | | | | | | | | Lingering closing related fixes: *) lingering_close "off|on|always" *) enable lingering close for pipelined requests *) do not send RST on normal lingering close read timeout, if reset_timedout_connection is on
* Merge of r3979, r3980, r3981, r3983, r3987, r3994, r3995:Igor Sysoev2011-08-29
| | | | | | Accept-Encoding refactoring: *) "gzip; q=0" support *) and removal of ancient MSIE 4.x test for gzip
* 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
|
* style fixIgor Sysoev2009-08-28
|
* axe r->connection->destroyed testingIgor Sysoev2009-08-26
|
* request reference counterIgor Sysoev2009-08-26
|
* fix segfault if 400 or 414 errors are handled intricatelyIgor Sysoev2009-07-24
|
* *) $ssl_client_verifyIgor Sysoev2009-07-22
| | | | *) "ssl_verify_client ask" was changed to "ssl_verify_client optional"
* fix r2972, it caused "zero size buf" alert.Igor Sysoev2009-07-22
|
* geo module supports trusted proxiesIgor Sysoev2009-07-22
|
* skip URI trailing dots under Win32Igor Sysoev2009-07-14
|
* fix ngx_http_send_special() for subrequests handled by perlIgor Sysoev2009-07-09
|
* ignore ngx_atomic_fetch_add() resultIgor Sysoev2009-06-18
| | | | this fixes building at least by gcc 4.2.1 on Mac OS X 10.6
* fix "out of memory" case handlingIgor Sysoev2009-05-29
|
* keepalive_requestsIgor Sysoev2009-05-25
|
* fix socket leak introduced in r2378Igor Sysoev2009-05-25
|
* use ngx_connection_local_sockaddr() instead of ngx_http_server_addr()Igor Sysoev2009-05-18
|
* delete unneeded castIgor Sysoev2009-05-18
|
* handle big responses for "size" and "test" image_filtersIgor Sysoev2009-05-08
|
* *) refactor error_log processing: listen socket log might inherit built-inIgor Sysoev2009-04-30
| | | | | | error_log with zero level, and r2447, r2466, r2467 were not enough *) remove bogus "stderr" level *) some functions and fields renames