]> git.ipfire.org Git - thirdparty/apache/httpd.git/commit
mod_proxy_http: don't connect or reuse backend before prefetching request body.
authorYann Ylavic <ylavic@apache.org>
Sun, 1 Feb 2015 00:05:59 +0000 (00:05 +0000)
committerYann Ylavic <ylavic@apache.org>
Sun, 1 Feb 2015 00:05:59 +0000 (00:05 +0000)
commit093b481ce04789828039931fa0be3e3829eac466
treeacf16879f83eaefceeb83d61b903bd156e6c60d9
parent7d5b068e64b7bc99feda16b2b50dac35558ce897
mod_proxy_http: don't connect or reuse backend before prefetching request body.

The goal is to minimize the delay between this connection is considered alive
and the first bytes sent (should the client's link be slow or some input filter
retain the data).
This is a best effort to prevent the backend from closing (from under us) what
it thinks is an idle connection, hence to reduce to the minimum the unavoidable
local ap_proxy_is_socket_connected() vs remote keepalive race condition.
PR 56541.

Also, allow the new subprocess_env variable "proxy-flushall" to prevent any
buffering of the request body before it is forwarded to the backend.
When set, the prefetch is still done (although non-blocking), so we can still
determine Content-Length vs chunked vs spooled (depending on data available
with the header or while reading it), and then all brigades are flushed when
passed to the backend.
PR 37920.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1656259 13f79535-47bb-0310-9956-ffa450edef68
docs/log-message-tags/next-number
modules/proxy/mod_proxy_http.c
modules/proxy/proxy_util.c