]> 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)
commitccc2e4c751826ff296df01428d42c4a40918110d
treeacf16879f83eaefceeb83d61b903bd156e6c60d9
parent12af2e3ac22af63f5d80c9cf6c7a65cf8d4806a4
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