summaryrefslogtreecommitdiffhomepage
path: root/src/http/ngx_http_request.c (follow)
AgeCommit message (Collapse)AuthorFilesLines
2011-11-01Merging r4195, r4196:Igor Sysoev1-9/+9
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).
2011-11-01Merging r4034, r4186, r4187, r4229, r4235, r4237:Igor Sysoev1-0/+18
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.
2011-09-30Merging r3986, r4006, r4007, r4073:Igor Sysoev1-1/+1
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.
2011-08-29Merge of r3982, r3984, r3985, r3991:Igor Sysoev1-2/+7
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
2011-08-29Merge of r3979, r3980, r3981, r3983, r3987, r3994, r3995:Igor Sysoev1-3/+0
Accept-Encoding refactoring: *) "gzip; q=0" support *) and removal of ancient MSIE 4.x test for gzip
2011-04-04reuse keepalive connections if there are no free worker connectionsIgor Sysoev1-0/+2
patch by Maxim Dounin
2011-01-20introduce 494 code "Request Header Too Large"Igor Sysoev1-2/+7
2010-12-06"If-Unmodified-Since" supportIgor Sysoev1-0/+4
2010-07-05fix recognition of SSLv2 Client Hello Packet large than 255 bytesIgor Sysoev1-1/+1
2010-06-15allow spaces in URIIgor Sysoev1-0/+1
2010-06-04test default NTFS stream "::$DATA"Igor Sysoev1-4/+19
2010-02-01disable keepalive for Safari:Igor Sysoev1-0/+3
https://bugs.webkit.org/show_bug.cgi?id=5760
2010-01-28skip URI trailing spaces under Win32Igor Sysoev1-2/+4
2010-01-28Fix segfault when while discarding body a write event handler is called,Igor Sysoev1-0/+1
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.
2009-11-16regex named capturesIgor Sysoev1-29/+6
2009-11-12r->chromeIgor Sysoev1-0/+3
2009-11-03fix segfault if there is single large_client_header_buffersIgor Sysoev1-1/+9
and a request line fills it completely
2009-10-22do not run regex for empty host name since regex always fails in this case,Igor Sysoev1-1/+1
the bug had been introduced in r2196
2009-10-21rename core_srv_conf fields to more understandable default_server and serverIgor Sysoev1-3/+3
2009-10-21fix r3218:Igor Sysoev1-1/+1
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.
2009-10-20fix two previous commits: an early parallel body discarding completionIgor Sysoev1-1/+2
disables incomplete ngx_http_writer()
2009-10-19allow discarding body while a long response transferIgor Sysoev1-1/+3
2009-10-19restore discard body handler after ngx_http_set_writer() set it toIgor Sysoev1-3/+8
ngx_http_test_reading(), the bug was introduced in r3050
2009-10-19add lingering timeout if a response is short and a request body is beingIgor Sysoev1-2/+9
discarded, the bug was introduced in r3050
2009-10-02clear r->keepalive to disable preventively callingIgor Sysoev1-0/+2
ngx_http_set_keepalive() while request cleanup
2009-09-30log 499 instead 0, the bug was introduced in r3050Igor Sysoev1-0/+4
2009-09-24update the previous commit: use ngx_strlow()Igor Sysoev1-8/+4
2009-09-24$host is always in low case:Igor Sysoev1-45/+65
*) 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
2009-09-21fix request counter for post_action, the bug was introduced in r3050Igor Sysoev1-0/+2
2009-09-01use %*s instead of %VIgor Sysoev1-20/+16
2009-08-30*) ngx_http_ephemeralIgor Sysoev1-8/+12
*) use preallocated terminal_posted_request
2009-08-28do not disable gzip for MSIE 6.0 SV1 in "gzip_disable msie6"Igor Sysoev1-1/+6
2009-08-28FreeBSD and Linux AIO supportIgor Sysoev1-9/+19
2009-08-28style fixIgor Sysoev1-3/+3
2009-08-26axe r->connection->destroyed testingIgor Sysoev1-8/+0
2009-08-26request reference counterIgor Sysoev1-23/+102
2009-07-24fix segfault if 400 or 414 errors are handled intricatelyIgor Sysoev1-0/+1
2009-07-22*) $ssl_client_verifyIgor Sysoev1-10/+12
*) "ssl_verify_client ask" was changed to "ssl_verify_client optional"
2009-07-22fix r2972, it caused "zero size buf" alert.Igor Sysoev1-0/+1
2009-07-22geo module supports trusted proxiesIgor Sysoev1-1/+1
2009-07-14skip URI trailing dots under Win32Igor Sysoev1-0/+16
2009-07-09fix ngx_http_send_special() for subrequests handled by perlIgor Sysoev1-1/+7
2009-06-18ignore ngx_atomic_fetch_add() resultIgor Sysoev1-12/+12
this fixes building at least by gcc 4.2.1 on Mac OS X 10.6
2009-05-29fix "out of memory" case handlingIgor Sysoev1-3/+6
2009-05-25keepalive_requestsIgor Sysoev1-0/+2
2009-05-25fix socket leak introduced in r2378Igor Sysoev1-0/+5
2009-05-18use ngx_connection_local_sockaddr() instead of ngx_http_server_addr()Igor Sysoev1-1/+1
2009-05-18delete unneeded castIgor Sysoev1-2/+2
2009-05-08handle big responses for "size" and "test" image_filtersIgor Sysoev1-0/+5
2009-04-30*) refactor error_log processing: listen socket log might inherit built-inIgor Sysoev1-4/+4
error_log with zero level, and r2447, r2466, r2467 were not enough *) remove bogus "stderr" level *) some functions and fields renames