From: Jeff Trawick Date: Wed, 1 Aug 2012 16:54:00 +0000 (+0000) Subject: core: Add post_perdir_config hook. X-Git-Tag: 2.5.0-alpha~6538 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7479b23caa1038f78913894dee9af25cc0bd3525;p=apache core: Add post_perdir_config hook. Submitted by: Steinar Gunderson trawick added/fixed include/ pieces git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1368121 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index 11b2c2784f..90031e56be 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,9 @@ -*- coding: utf-8 -*- Changes with Apache 2.5.0 + *) core: Add post_perdir_config hook. + [Steinar Gunderson ] + *) mod_lua: Add new directive, LuaMapHandler, for dynamically mapping URIs to Lua scripts and functions using regular expressions. [Daniel Gruno] diff --git a/include/ap_mmn.h b/include/ap_mmn.h index cf77bd7fbf..7901a1e82f 100644 --- a/include/ap_mmn.h +++ b/include/ap_mmn.h @@ -398,6 +398,7 @@ * 20120211.3 (2.5.0-dev) Add forcerecovery to proxy_balancer_shared struct * 20120211.4 (2.5.0-dev) Add missing HTTP status codes registered with IANA. * 20120724.0 (2.5.0-dev) Add hostname argument to ap_proxy_checkproxyblock. + * 20120724.1 (2.5.0-dev) Add post_perdir_config hook. */ #define MODULE_MAGIC_COOKIE 0x41503235UL /* "AP25" */ @@ -405,7 +406,7 @@ #ifndef MODULE_MAGIC_NUMBER_MAJOR #define MODULE_MAGIC_NUMBER_MAJOR 20120724 #endif -#define MODULE_MAGIC_NUMBER_MINOR 0 /* 0...n */ +#define MODULE_MAGIC_NUMBER_MINOR 1 /* 0...n */ /** * Determine if the server's current MODULE_MAGIC_NUMBER is at least a diff --git a/include/http_request.h b/include/http_request.h index a81e7538b2..086e930871 100644 --- a/include/http_request.h +++ b/include/http_request.h @@ -528,6 +528,16 @@ AP_DECLARE(void) ap_hook_check_authz(ap_HOOK_auth_checker_t *pf, */ AP_DECLARE_HOOK(void,insert_filter,(request_rec *r)) +/** + * This hook allows modules to affect the request immediately after the + * per-directory configuration for the request has been generated. + * @param r The current request + * @return OK (allow acces), DECLINED (let later modules decide), + * or HTTP_... (deny access) + * @ingroup hooks + */ +AP_DECLARE_HOOK(int,post_perdir_config,(request_rec *r)) + AP_DECLARE(int) ap_location_walk(request_rec *r); AP_DECLARE(int) ap_directory_walk(request_rec *r); AP_DECLARE(int) ap_file_walk(request_rec *r); diff --git a/server/request.c b/server/request.c index f285294f5c..8998d2290b 100644 --- a/server/request.c +++ b/server/request.c @@ -69,6 +69,7 @@ APR_HOOK_STRUCT( APR_HOOK_LINK(auth_checker) APR_HOOK_LINK(insert_filter) APR_HOOK_LINK(create_request) + APR_HOOK_LINK(post_perdir_config) ) AP_IMPLEMENT_HOOK_RUN_FIRST(int,translate_name, @@ -90,6 +91,8 @@ AP_IMPLEMENT_HOOK_RUN_FIRST(int,auth_checker, AP_IMPLEMENT_HOOK_VOID(insert_filter, (request_rec *r), (r)) AP_IMPLEMENT_HOOK_RUN_ALL(int, create_request, (request_rec *r), (r), OK, DECLINED) +AP_IMPLEMENT_HOOK_RUN_ALL(int, post_perdir_config, + (request_rec *r), (r), OK, DECLINED) static int auth_internal_per_conf = 0; static int auth_internal_per_conf_hooks = 0; @@ -191,6 +194,10 @@ AP_DECLARE(int) ap_process_request_internal(request_rec *r) r->log = d->log; } + if ((access_status = ap_run_post_perdir_config(r))) { + return access_status; + } + /* Only on the main request! */ if (r->main == NULL) { if ((access_status = ap_run_header_parser(r))) {