]> git.ipfire.org Git - thirdparty/apache/httpd.git/commit
mod_proxy(es): Avoid error response/document handling by the core if some
authorYann Ylavic <ylavic@apache.org>
Fri, 6 Feb 2015 16:54:16 +0000 (16:54 +0000)
committerYann Ylavic <ylavic@apache.org>
Fri, 6 Feb 2015 16:54:16 +0000 (16:54 +0000)
commit8b9227049ca0f6c2a6656334b1faedaafa89478f
tree3be84f813c990cc6b0c579da137ecc75fc7014a4
parent3dbc83d270405dd5f48d458b505d9b394c2728ff
mod_proxy(es): Avoid error response/document handling by the core if some
input filter already did it while reading client's payload.

When an input filter returns AP_FILTER_ERROR, it has already called ap_die()
or at least already responded to the client.

Here we don't want to lose AP_FILTER_ERROR when returning from proxy handlers,
so we use ap_map_http_request_error() to forward any AP_FILTER_ERROR to
ap_die() which knows whether a response needs to be completed or not.

Before this commit, returning an HTTP error code in this case caused a double
response to be generated.

Depends on r1657881 to preserve r->status (for logging) when nothing is to be
done by ap_die() when handling AP_FILTER_ERROR.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1657897 13f79535-47bb-0310-9956-ffa450edef68
CHANGES
modules/proxy/mod_proxy.c
modules/proxy/mod_proxy_ajp.c
modules/proxy/mod_proxy_balancer.c
modules/proxy/mod_proxy_fcgi.c
modules/proxy/mod_proxy_http.c
modules/proxy/mod_proxy_scgi.c