1
0
mirror of https://github.com/apache/httpd.git synced 2025-08-07 04:02:58 +03:00

Performance: Add quick_handler hook. This hook is called at the

very beginning of the request processing before location_walk,
translate_name, etc.  This hook is useful for URI keyed content
caches like Mike Abbott's Quick Shortcut Cache.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@88596 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Bill Stoddard
2001-03-27 19:19:08 +00:00
parent 66f945d258
commit 4732553655
4 changed files with 48 additions and 1 deletions

View File

@@ -391,7 +391,36 @@ static void check_pipeline_flush(request_rec *r)
void ap_process_request(request_rec *r)
{
process_request_internal(r);
int access_status;
/* Give quick handlers a shot at serving the request on the fast
* path, bypassing all of the other Apache hooks.
*
* This hook was added to enable serving files out of a URI keyed
* content cache ( e.g., Mike Abbott's Quick Shortcut Cache,
* described here: http://oss.sgi.com/projects/apache/mod_qsc.html )
*
* It may have other uses as well, such as routing requests directly to
* content handlers that have the ability to grok HTTP and do their
* own access checking, etc (e.g. servlet engines).
*
* Use this hook with extreme care and only if you know what you are
* doing.
*
* Consider moving this hook to after the first location_walk in order
* to enable the quick handler to make decisions based on config
* directives in Location blocks.
*/
access_status = ap_run_quick_handler(r);
if (access_status == OK) {
ap_finalize_request_protocol(r);
}
else if (access_status == DECLINED) {
process_request_internal(r);
}
else {
ap_die(access_status, r);
}
/*
* We want to flush the last packet if this isn't a pipelining connection