From: Jim Jagielski Date: Sat, 1 Sep 2007 12:13:09 +0000 (+0000) Subject: Merge r571338 from trunk: X-Git-Tag: 2.2.6~44 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4681d10fc4a8354426a3d0af34e35e8fed00c5de;p=thirdparty%2Fapache%2Fhttpd.git Merge r571338 from trunk: mod_proxy: Add Proxypass status option to ignore errors PR 43167. Patch by Francisco Gimeno Submitted by: niq Reviewed by: jim git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x@571778 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index 43010975823..6b48ea8910e 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,9 @@ -*- coding: utf-8 -*- Changes with Apache 2.2.6 + *) mod_proxy: enable Ignore Errors option on ProxyPass Status. + PR 43167 [Francisco Gimeno + *) mod_proxy_http: Don't try to read body of a HEAD request before responding. PR 41644 [Stuart Children ] diff --git a/docs/manual/mod/mod_proxy.xml b/docs/manual/mod/mod_proxy.xml index 18331c9f0e4..65de869527a 100644 --- a/docs/manual/mod/mod_proxy.xml +++ b/docs/manual/mod/mod_proxy.xml @@ -694,9 +694,10 @@ expressions status - Single letter value defining the initial status of - this worker: 'D' is disabled, 'S' is stopped, 'H' is hot-standby - and 'E' is in an error state. Status can be set (which is the default) - by prepending with '+' or cleared by prepending with '-'. + this worker: 'D' is disabled, 'S' is stopped, 'I' is ignore-errors, + 'H' is hot-standby and 'E' is in an error state. Status + can be set (which is the default) by prepending with '+' or + cleared by prepending with '-'. Thus, a setting of 'S-E' sets this worker to Stopped and clears the in-error flag. diff --git a/modules/proxy/mod_proxy.c b/modules/proxy/mod_proxy.c index c845ba047ff..18b554a7b31 100644 --- a/modules/proxy/mod_proxy.c +++ b/modules/proxy/mod_proxy.c @@ -219,6 +219,12 @@ static const char *set_worker_param(apr_pool_t *p, else worker->status &= ~PROXY_WORKER_HOT_STANDBY; } + else if (*v == 'I' || *v == 'i') { + if (mode) + worker->status |= PROXY_WORKER_IGNORE_ERRORS; + else + worker->status &= ~PROXY_WORKER_IGNORE_ERRORS; + } else { return "Unknown status parameter option"; }