You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.8 KiB
45 lines
1.8 KiB
diff --git a/modules/proxy/mod_proxy.c b/modules/proxy/mod_proxy.c |
|
index 7f96aff..5517e08 100644 |
|
--- a/modules/proxy/mod_proxy.c |
|
+++ b/modules/proxy/mod_proxy.c |
|
@@ -1118,7 +1118,7 @@ static int proxy_handler(request_rec *r) |
|
AP_PROXY_RUN(r, worker, conf, url, attempts); |
|
access_status = proxy_run_scheme_handler(r, worker, conf, |
|
url, NULL, 0); |
|
- if (access_status == OK) |
|
+ if (access_status == OK || apr_table_get(r->notes, "proxy-error-override")) |
|
break; |
|
else if (access_status == HTTP_INTERNAL_SERVER_ERROR) { |
|
/* Unrecoverable server error. |
|
diff --git a/modules/proxy/mod_proxy_ajp.c b/modules/proxy/mod_proxy_ajp.c |
|
index cf52a7d..380b870 100644 |
|
--- a/modules/proxy/mod_proxy_ajp.c |
|
+++ b/modules/proxy/mod_proxy_ajp.c |
|
@@ -636,6 +636,11 @@ static int ap_proxy_ajp_request(apr_pool_t *p, request_rec *r, |
|
*/ |
|
rv = r->status; |
|
r->status = HTTP_OK; |
|
+ /* |
|
+ * prevent proxy_handler() from treating this as an |
|
+ * internal error. |
|
+ */ |
|
+ apr_table_setn(r->notes, "proxy-error-override", "1"); |
|
} |
|
else { |
|
rv = OK; |
|
diff --git a/modules/proxy/mod_proxy_http.c b/modules/proxy/mod_proxy_http.c |
|
index 89b5d15..bb5cdf9 100644 |
|
--- a/modules/proxy/mod_proxy_http.c |
|
+++ b/modules/proxy/mod_proxy_http.c |
|
@@ -1648,6 +1648,11 @@ apr_status_t ap_proxy_http_process_response(apr_pool_t * p, request_rec *r, |
|
} |
|
ap_discard_request_body(backend->r); |
|
} |
|
+ /* |
|
+ * prevent proxy_handler() from treating this as an |
|
+ * internal error. |
|
+ */ |
|
+ apr_table_setn(r->notes, "proxy-error-override", "1"); |
|
return proxy_status; |
|
} |
|
|
|
|