mirror of
https://github.com/apache/httpd.git
synced 2025-08-08 15:02:10 +03:00
http_request.[ch]:
*) add the "install_filter" hook as a hook/control point for modules to install their filters. [Ryan Bloom] http_protocol.c: *) move check_first_conn_error() up in the file; no actual changes *) add checked_bputstrs(), checked_bflush(), and checked_bputs(). These are copies of ap_rvputs(), ap_rflush(), and ap_rputs() respectively. The users of the checked_* functions will be independent of filtering changes to the ap_r* functions. *) add flush_filters() place holder git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85685 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
@@ -86,6 +86,7 @@ AP_HOOK_STRUCT(
|
||||
AP_HOOK_LINK(type_checker)
|
||||
AP_HOOK_LINK(access_checker)
|
||||
AP_HOOK_LINK(auth_checker)
|
||||
AP_HOOK_LINK(insert_filter)
|
||||
)
|
||||
|
||||
AP_IMPLEMENT_HOOK_RUN_FIRST(int,translate_name,
|
||||
@@ -100,6 +101,7 @@ AP_IMPLEMENT_HOOK_RUN_ALL(int,access_checker,
|
||||
(request_rec *r),(r),OK,DECLINED)
|
||||
AP_IMPLEMENT_HOOK_RUN_FIRST(int,auth_checker,
|
||||
(request_rec *r),(r),DECLINED)
|
||||
AP_IMPLEMENT_HOOK_VOID(insert_filter, (request_rec *r), (r))
|
||||
|
||||
/*****************************************************************
|
||||
*
|
||||
@@ -1247,6 +1249,15 @@ static void process_request_internal(request_rec *r)
|
||||
return;
|
||||
}
|
||||
|
||||
/* The new insert_filter stage makes sense here IMHO. We are sure that
|
||||
* we are going to run the request now, so we may as well insert filters
|
||||
* if any are available. Since the goal of this phase is to allow all
|
||||
* modules to insert a filter if they want to, this filter returns
|
||||
* void. I just can't see any way that this filter can reasonably
|
||||
* fail, either your modules inserts something or it doesn't. rbb
|
||||
*/
|
||||
ap_run_insert_filter(r);
|
||||
|
||||
if ((access_status = ap_invoke_handler(r)) != 0) {
|
||||
ap_die(access_status, r);
|
||||
return;
|
||||
|
Reference in New Issue
Block a user