mirror of
https://github.com/apache/httpd.git
synced 2025-08-08 15:02:10 +03:00
Currently, when the map-to-storage handler for TRACE returns DONE, the
caller -- ap_process_request_internal() -- catches that and returns OK to its caller -- ap_process_request(). But ap_process_request(), seeing OK, tries to run a handler. It needs to skip that if the request was completed in ap_process_request_internal(). Reviewed by: William A. Rowe, Jr. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@91095 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
@@ -284,6 +284,10 @@ void ap_process_request(request_rec *r)
|
|||||||
access_status = ap_process_request_internal(r);
|
access_status = ap_process_request_internal(r);
|
||||||
if (access_status == OK)
|
if (access_status == OK)
|
||||||
access_status = ap_invoke_handler(r);
|
access_status = ap_invoke_handler(r);
|
||||||
|
else if (access_status == DONE) {
|
||||||
|
/* e.g., something not in storage like TRACE */
|
||||||
|
access_status = OK;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (access_status == OK) {
|
if (access_status == OK) {
|
||||||
|
@@ -162,10 +162,7 @@ AP_DECLARE(int) ap_process_request_internal(request_rec *r)
|
|||||||
|
|
||||||
if ((access_status = ap_run_map_to_storage(r))) {
|
if ((access_status = ap_run_map_to_storage(r))) {
|
||||||
/* This request wasn't in storage (e.g. TRACE) */
|
/* This request wasn't in storage (e.g. TRACE) */
|
||||||
if (access_status == DONE)
|
return access_status;
|
||||||
return OK;
|
|
||||||
else
|
|
||||||
return access_status;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((access_status = ap_location_walk(r))) {
|
if ((access_status = ap_location_walk(r))) {
|
||||||
|
Reference in New Issue
Block a user