Version bump.


git-svn-id: svn://svn.nginx.org/nginx/trunk@5101 73f98a42-aea0-e011-b76d-00259023448c
Create request object only after the first byte was received.

Previously, we always created an object and logged 400 (Bad Request)
in access log if a client closed connection without sending any data.
Such a connection was counted as "reading".

Since it's common for modern browsers to behave like this, it's no
longer considered an error if a client closes connection without
sending any data, and such a connection will be counted as "waiting".

Now, we do not log 400 (Bad Request) and keep memory footprint as
small as possible.


git-svn-id: svn://svn.nginx.org/nginx/trunk@5102 73f98a42-aea0-e011-b76d-00259023448c
Use "client_header_timeout" for all requests in a connection.

Previously, only the first request in a connection used timeout
value from the "client_header_timeout" directive while reading
header.  All subsequent requests used "keepalive_timeout" for
that.

It happened because timeout of the read event was set to the
value of "keepalive_timeout" in ngx_http_set_keepalive(), but
was not removed when the next request arrived.


git-svn-id: svn://svn.nginx.org/nginx/trunk@5103 73f98a42-aea0-e011-b76d-00259023448c
Respect the new behavior of TCP_DEFER_ACCEPT.

In Linux 2.6.32, TCP_DEFER_ACCEPT was changed to accept connections
after the deferring period is finished without any data available.
(Reading from the socket returns EAGAIN in this case.)

Since in nginx TCP_DEFER_ACCEPT is set to "post_accept_timeout", we
do not need to wait longer if deferred accept returns with no data.


git-svn-id: svn://svn.nginx.org/nginx/trunk@5104 73f98a42-aea0-e011-b76d-00259023448c
Removed c->single_connection flag.

The c->single_connection was intended to be used as lock mechanism
to serialize modifications of request object from several threads
working with client and upstream connections.  The flag is redundant
since threads in nginx have never been used that way.


git-svn-id: svn://svn.nginx.org/nginx/trunk@5105 73f98a42-aea0-e011-b76d-00259023448c
Refactored ngx_http_init_request().

Now it can be used as the request object factory with minimal impact on the
connection object.  Therefore it was renamed to ngx_http_create_request().


git-svn-id: svn://svn.nginx.org/nginx/trunk@5106 73f98a42-aea0-e011-b76d-00259023448c
SSL: Next Protocol Negotiation extension support.

Not only this is useful for the upcoming SPDY support, but it can
also help to improve HTTPS performance by enabling TLS False Start
in Chrome/Chromium browsers [1].  So, we always enable NPN for HTTPS
if it is supported by OpenSSL.

[1] http://www.imperialviolet.org/2012/04/11/falsestart.html


git-svn-id: svn://svn.nginx.org/nginx/trunk@5107 73f98a42-aea0-e011-b76d-00259023448c