From: Jeff Trawick Date: Thu, 20 Sep 2001 17:54:51 +0000 (+0000) Subject: Currently, when the map-to-storage handler for TRACE returns DONE, the X-Git-Tag: 2.0.26~208 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8b31569e09496a07a0a4b8bd4b5b68a3e07a1e13;p=thirdparty%2Fapache%2Fhttpd.git 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 --- diff --git a/modules/http/http_request.c b/modules/http/http_request.c index 4dbbc788b22..e381da59d78 100644 --- a/modules/http/http_request.c +++ b/modules/http/http_request.c @@ -284,6 +284,10 @@ void ap_process_request(request_rec *r) access_status = ap_process_request_internal(r); if (access_status == OK) 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) { diff --git a/server/request.c b/server/request.c index b2ab2d538f1..8c467d90d74 100644 --- a/server/request.c +++ b/server/request.c @@ -162,10 +162,7 @@ AP_DECLARE(int) ap_process_request_internal(request_rec *r) if ((access_status = ap_run_map_to_storage(r))) { /* This request wasn't in storage (e.g. TRACE) */ - if (access_status == DONE) - return OK; - else - return access_status; + return access_status; } if ((access_status = ap_location_walk(r))) {