diff --git a/modules/proxy/mod_proxy.c b/modules/proxy/mod_proxy.c index f0254ef4a0..00c1c25b0a 100644 --- a/modules/proxy/mod_proxy.c +++ b/modules/proxy/mod_proxy.c @@ -297,6 +297,9 @@ static const char *set_worker_param(apr_pool_t *p, worker->conn_timeout = timeout; worker->conn_timeout_set = 1; } + else if (!strcasecmp(key, "flusher")) { + worker->flusher = apr_pstrdup(p, val); + } else { return "unknown Worker parameter"; } diff --git a/modules/proxy/mod_proxy.h b/modules/proxy/mod_proxy.h index a81694417f..70996983d2 100644 --- a/modules/proxy/mod_proxy.h +++ b/modules/proxy/mod_proxy.h @@ -354,6 +354,7 @@ struct proxy_worker { char disablereuse_set; apr_interval_time_t conn_timeout; char conn_timeout_set; + const char *flusher; /* flush provider used by mod_proxy_fdpass */ }; /* diff --git a/modules/proxy/mod_proxy_fdpass.c b/modules/proxy/mod_proxy_fdpass.c index 067248cfc8..a59d3c0ce1 100644 --- a/modules/proxy/mod_proxy_fdpass.c +++ b/modules/proxy/mod_proxy_fdpass.c @@ -194,7 +194,7 @@ static int proxy_fdpass_handler(request_rec *r, proxy_worker *worker, { int status; - const char *flush_method = "flush"; + const char *flush_method = worker->flusher ? worker->flusher : "flush"; proxy_fdpass_flush *flush = ap_lookup_provider(PROXY_FDPASS_FLUSHER, flush_method, "0");