*) Core: reject NULLs in request line or request headers.
PR 43039 [Nick Kew]
+ *) mod_proxy: Correctly consider error response codes by the backend when
+ processing failonstatus. PR 59869 [Ruediger Pluem]
+
*) mod_ssl: Fix a possible memory leak on restart for custom [EC]DH params.
[Jan Kaluza, Yann Ylavic]
* the error page on the proxy or if the error was not generated by the
* backend itself but by the proxy e.g. a bad gateway) in order to give
* ap_proxy_post_request a chance to act correctly on the status code.
+ * But only do the above if access_status is not OK and not DONE, because
+ * in this case r->status might contain the true status and overwriting
+ * it with OK or DONE would be wrong.
*/
- saved_status = r->status;
- r->status = access_status;
- int post_status = proxy_run_post_request(worker, balancer, r, conf);
- /*
- * Only restore r->status if it has not been changed by
- * ap_proxy_post_request as we assume that this change was intentional.
- */
- if (r->status == access_status) {
- r->status = saved_status;
+ if ((access_status != OK) && (access_status != DONE)) {
+ saved_status = r->status;
+ r->status = access_status;
+ proxy_run_post_request(worker, balancer, r, conf);
+ /*
+ * Only restore r->status if it has not been changed by
+ * ap_proxy_post_request as we assume that this change was intentional.
+ */
+ if (r->status == access_status) {
+ r->status = saved_status;
+ }
}
- if (post_status == DECLINED) {
- post_status = OK; /* no post_request handler available */
- /* TODO: recycle direct worker */
+ else {
+ ap_proxy_post_request(worker, balancer, r, conf);
}
}