diff --git a/CHANGES b/CHANGES index c456ec4bce..c28f8ab296 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,12 @@ -*- coding: utf-8 -*- Changes with Apache 2.5.0 + *) mod_proxy_fdpass: Fix AH01153 error when using the default configuration. + In earlier version of httpd, you can explicitelly set the 'flusher' parameter + to 'flush' as a workaround. (i.e. flusher=flush) + Add documentation for the 'flusher' parameter when defining a proxy worker. + [Christophe Jaillet] + *) mod_ssl: For the "SSLStaplingReturnResponderErrors off" case, make sure to only staple responses with certificate status "good". [Kaspar Brand] diff --git a/docs/manual/mod/mod_proxy.xml b/docs/manual/mod/mod_proxy.xml index 56dc4450df..b27ef9b59f 100644 --- a/docs/manual/mod/mod_proxy.xml +++ b/docs/manual/mod/mod_proxy.xml @@ -1178,6 +1178,11 @@ ProxyPass "/example" "http://backend.example.com" max=20 ttl=120 retry=300 connection will not be used again; it will be closed at some later time. +
Name of the provider used by
The module has a proxy_fdpass_flusher
provider interface,
which allows another module to optionally send the response headers, or even
- the start of the response body. The default flush provider disables keep-alive,
- and sends the response headers, letting the external process just send a
- response body.
flush
provider
+ disables keep-alive, and sends the response headers, letting the external
+ process just send a response body.
+
+
+ In order to use another provider, you have to set the flusher
+ parameter in the
At this time the only data passed to the external process is the client socket. To receive a client socket, call recvfrom with an allocated diff --git a/modules/proxy/mod_proxy_fdpass.c b/modules/proxy/mod_proxy_fdpass.c index 6f550c0e37..01462f101f 100644 --- a/modules/proxy/mod_proxy_fdpass.c +++ b/modules/proxy/mod_proxy_fdpass.c @@ -57,7 +57,6 @@ static apr_status_t get_socket_from_path(apr_pool_t *p, *out_sock = NULL; rv = apr_socket_create(&s, AF_UNIX, SOCK_STREAM, 0, p); - if (rv != APR_SUCCESS) { return rv; } @@ -72,7 +71,6 @@ static apr_status_t get_socket_from_path(apr_pool_t *p, return APR_SUCCESS; } - static apr_status_t send_socket(apr_pool_t *p, apr_socket_t *s, apr_socket_t *outbound) @@ -119,7 +117,6 @@ static apr_status_t send_socket(apr_pool_t *p, return errno; } - return APR_SUCCESS; } @@ -149,7 +146,7 @@ static int proxy_fdpass_handler(request_rec *r, proxy_worker *worker, { int status; - const char *flush_method = worker->s->flusher ? worker->s->flusher : "flush"; + const char *flush_method = *worker->s->flusher ? worker->s->flusher : "flush"; proxy_fdpass_flush *flush = ap_lookup_provider(PROXY_FDPASS_FLUSHER, flush_method, "0"); @@ -191,7 +188,6 @@ static int proxy_fdpass_handler(request_rec *r, proxy_worker *worker, ap_set_core_module_config(r->connection->conn_config, dummy); } - return OK; }