summaryrefslogtreecommitdiffhomepage
path: root/src/http/ngx_http_request.c (follow)
AgeCommit message (Collapse)AuthorFilesLines
2011-11-28Added support for IP-literal in the Host header and request line (ticket #1).Valentin Bartenev1-24/+53
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.
2011-11-22Fixed segfault on ssl servers without cert with SNI (ticket #54).Maxim Dounin1-12/+14
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.
2011-10-11Fix for socket leak with "aio sendfile" and "limit_rate".Maxim Dounin1-8/+8
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.
2011-10-11Fix for connection drops with AIO.Maxim Dounin1-1/+1
Connections serving content with AIO to fast clients were dropped with "client timed out" messages after send_timeout from response start.
2011-08-23Better handling of various per-server ssl options with SNI.Maxim Dounin1-0/+18
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.
2011-08-01always set timer in discard body handler, this fixes the casesIgor Sysoev1-1/+1
when request for static file is redirected by error_page to an SSI page patch by Maxim Dounin
2011-08-01lingering_close "off|on|always"Igor Sysoev1-4/+6
patch by Maxim Dounin
2011-08-01do not send RST on normal lingering close read timeout,Igor Sysoev1-1/+0
if reset_timedout_connection is on patch by Maxim Dounin
2011-08-01enable lingering close for pipelined requestsIgor Sysoev1-1/+5
patch by Maxim Dounin
2011-07-30Accept-Encoding refactoring: remove ancient MSIE 4.x test for gzipIgor Sysoev1-3/+0
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