|
|
41a6c3 |
diff --git a/modules/proxy/mod_proxy.c b/modules/proxy/mod_proxy.c
|
|
|
41a6c3 |
index 7f96aff..5517e08 100644
|
|
|
41a6c3 |
--- a/modules/proxy/mod_proxy.c
|
|
|
41a6c3 |
+++ b/modules/proxy/mod_proxy.c
|
|
|
41a6c3 |
@@ -1118,7 +1118,7 @@ static int proxy_handler(request_rec *r)
|
|
|
41a6c3 |
AP_PROXY_RUN(r, worker, conf, url, attempts);
|
|
|
41a6c3 |
access_status = proxy_run_scheme_handler(r, worker, conf,
|
|
|
41a6c3 |
url, NULL, 0);
|
|
|
41a6c3 |
- if (access_status == OK)
|
|
|
41a6c3 |
+ if (access_status == OK || apr_table_get(r->notes, "proxy-error-override"))
|
|
|
41a6c3 |
break;
|
|
|
41a6c3 |
else if (access_status == HTTP_INTERNAL_SERVER_ERROR) {
|
|
|
41a6c3 |
/* Unrecoverable server error.
|
|
|
41a6c3 |
diff --git a/modules/proxy/mod_proxy_ajp.c b/modules/proxy/mod_proxy_ajp.c
|
|
|
41a6c3 |
index cf52a7d..380b870 100644
|
|
|
41a6c3 |
--- a/modules/proxy/mod_proxy_ajp.c
|
|
|
41a6c3 |
+++ b/modules/proxy/mod_proxy_ajp.c
|
|
|
41a6c3 |
@@ -636,6 +636,11 @@ static int ap_proxy_ajp_request(apr_pool_t *p, request_rec *r,
|
|
|
41a6c3 |
*/
|
|
|
41a6c3 |
rv = r->status;
|
|
|
41a6c3 |
r->status = HTTP_OK;
|
|
|
41a6c3 |
+ /*
|
|
|
41a6c3 |
+ * prevent proxy_handler() from treating this as an
|
|
|
41a6c3 |
+ * internal error.
|
|
|
41a6c3 |
+ */
|
|
|
41a6c3 |
+ apr_table_setn(r->notes, "proxy-error-override", "1");
|
|
|
41a6c3 |
}
|
|
|
41a6c3 |
else {
|
|
|
41a6c3 |
rv = OK;
|
|
|
41a6c3 |
diff --git a/modules/proxy/mod_proxy_http.c b/modules/proxy/mod_proxy_http.c
|
|
|
41a6c3 |
index 89b5d15..bb5cdf9 100644
|
|
|
41a6c3 |
--- a/modules/proxy/mod_proxy_http.c
|
|
|
41a6c3 |
+++ b/modules/proxy/mod_proxy_http.c
|
|
|
41a6c3 |
@@ -1648,6 +1648,11 @@ apr_status_t ap_proxy_http_process_response(apr_pool_t * p, request_rec *r,
|
|
|
41a6c3 |
}
|
|
|
41a6c3 |
ap_discard_request_body(backend->r);
|
|
|
41a6c3 |
}
|
|
|
41a6c3 |
+ /*
|
|
|
41a6c3 |
+ * prevent proxy_handler() from treating this as an
|
|
|
41a6c3 |
+ * internal error.
|
|
|
41a6c3 |
+ */
|
|
|
41a6c3 |
+ apr_table_setn(r->notes, "proxy-error-override", "1");
|
|
|
41a6c3 |
return proxy_status;
|
|
|
41a6c3 |
}
|
|
|
41a6c3 |
|