]> granicus.if.org Git - apache/commitdiff
mod_proxy: Add Proxypass status option to ignore errors
authorNick Kew <niq@apache.org>
Thu, 30 Aug 2007 23:06:00 +0000 (23:06 +0000)
committerNick Kew <niq@apache.org>
Thu, 30 Aug 2007 23:06:00 +0000 (23:06 +0000)
PR 43167.  Patch by Francisco Gimeno

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@571338 13f79535-47bb-0310-9956-ffa450edef68

CHANGES
docs/manual/mod/mod_proxy.xml
modules/proxy/mod_proxy.c

diff --git a/CHANGES b/CHANGES
index 43b5934364b78e9273ccccaa3f9417c48af18592..b6ae84446efe1e6acda21e9aea8373bd94e22765 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,9 @@
                                                         -*- coding: utf-8 -*-
 Changes with Apache 2.3.0
 
+  *) mod_proxy: enable Ignore Errors option on ProxyPass Status.
+     PR 43167 [Francisco Gimeno <kikov kikov.org>
+
   *) mod_proxy_http: Don't try to read body of a HEAD request before
      responding.
      PR 41644 [Stuart Children <stuart terminus.co.uk>]
index 7b8ab2e0fa3071032497608e8f87f556b8265fbb..813ee2117c5e403dea5ce1aad22bfc9d24fb4252 100644 (file)
@@ -719,9 +719,10 @@ expressions</description>
     <tr><td>status</td>
         <td>-</td>
         <td>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.
     </td></tr>
index 73a69aa9a874332a815dbbcaff3246324d7cdedb..df613fe2fe2a2558e37cdc392ef65414e4b8ab62 100644 (file)
@@ -220,6 +220,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";
             }