This is to avoid setting the TCP_NODELAY flag on SPDY socket in
ngx_http_upstream_send_response(). The latter works per request,
but in SPDY case it might affect other streams in connection.
git-svn-id: svn://svn.nginx.org/nginx/trunk@5183 73f98a42-aea0-e011-b76d-00259023448c

As of 1.3.9, chunked request body may be available with
r->headers_in.content_length_n <= 0. Additionally, request body
may be in multiple buffers even if r->request_body_in_single_buf
was requested.
git-svn-id: svn://svn.nginx.org/nginx/trunk@5182 73f98a42-aea0-e011-b76d-00259023448c

Dependancy tracking introduced in r5169 were not handled absolute path
names properly. Absolute names might appear in CORE_DEPS if --with-openssl
or --with-pcre configure arguments are used to build OpenSSL/PCRE
libraries.
Additionally, revert part of r5169 to set NGX_INCS from Makefile
variables. Makefile variables have $ngx_include_opt in them, which
might result in wrong include paths being used. As a side effect,
this also restores build with --with-http_perl_module and --without-http
at the same time.
git-svn-id: svn://svn.nginx.org/nginx/trunk@5181 73f98a42-aea0-e011-b76d-00259023448c

Evenport method needs more work. Changes in r5172, while being correct,
introduce various new regressions with current code.
git-svn-id: svn://svn.nginx.org/nginx/trunk@5176 73f98a42-aea0-e011-b76d-00259023448c

Before 1.3.9 an attempt to read body in a subrequest only caused problems
if body wasn't already read or discarded in a main request. Starting with
1.3.9 it might also cause problems if body was discarded by a main request
before subrequest start.
Fix is to just ignore attempts to read request body in a subrequest, which
looks like right thing to do anyway.
git-svn-id: svn://svn.nginx.org/nginx/trunk@5175 73f98a42-aea0-e011-b76d-00259023448c

We generate both read and write events if an error event was returned by
port_getn() without POLLIN/POLLOUT, but we should not try to handle inactive
events, they may even have no handler.
git-svn-id: svn://svn.nginx.org/nginx/trunk@5172 73f98a42-aea0-e011-b76d-00259023448c

Stale write event may happen if read and write events was reported both,
and processing of the read event closed descriptor.
In practice this might result in "sendfilev() failed (134: ..." or
"writev() failed (134: ..." errors when switching to next upstream server.
See report here:
http://mailman.nginx.org/pipermail/nginx/2013-April/038421.html
git-svn-id: svn://svn.nginx.org/nginx/trunk@5171 73f98a42-aea0-e011-b76d-00259023448c

To avoid further breaks it's now done properly, all the dependencies
are now passed to Makefile.PL. While here, fixed include list passed to
Makefile.PL to use Makefile variables rather than a list expanded during
configure.
git-svn-id: svn://svn.nginx.org/nginx/trunk@5169 73f98a42-aea0-e011-b76d-00259023448c

It's no longer necessary to update src/http/modules/perl/nginx.pm
when version is bumped, as it's now derived from src/core/nginx.h.
git-svn-id: svn://svn.nginx.org/nginx/trunk@5147 73f98a42-aea0-e011-b76d-00259023448c

Problems with setsockopt(TCP_NODELAY) and setsockopt(TCP_NOPUSH), as well
as sendfile() syscall on Solaris, are specific to UNIX-domain sockets.
Other address families, i.e. AF_INET and AF_INET6, are fine.
git-svn-id: svn://svn.nginx.org/nginx/trunk@5142 73f98a42-aea0-e011-b76d-00259023448c

On Win32 platforms 0 is used to indicate errors in file operations, so
comparing against either -1 or NGX_OK is not portable.
This was not much of an issue in patched code, since only ngx_fd_info() test
is actually reachable on Win32 and in worst case it might result in bogus
error log entry.
Patch by Piotr Sikora.
git-svn-id: svn://svn.nginx.org/nginx/trunk@5138 73f98a42-aea0-e011-b76d-00259023448c

Sorting of upstream servers by their weights is not required by
current balancing algorithms.
This will likely change mapping to backends served by ip_hash
weighted upstreams.
git-svn-id: svn://svn.nginx.org/nginx/trunk@5136 73f98a42-aea0-e011-b76d-00259023448c