diff options
author | Jeff Trawick <trawick@apache.org> | 2012-09-24 12:42:32 +0000 |
---|---|---|
committer | Jeff Trawick <trawick@apache.org> | 2012-09-24 12:42:32 +0000 |
commit | dfc4862f0e912c5fa248ab9eb1cfd1a5f96e3f44 (patch) | |
tree | dd3b7cda1a7ff0523368f869f39bd424c561856d /server/config.c | |
parent | d22e888e53ced38341c7c32c759973000eab4bd3 (diff) | |
download | httpd-dfc4862f0e912c5fa248ab9eb1cfd1a5f96e3f44.tar.gz |
add pre_htaccess hook; in conjunction with earlier dirwalk_stat
and post_perdir_config hooks, this should allow mpm-itk to be
used without patches to httpd core
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1389339 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'server/config.c')
-rw-r--r-- | server/config.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/server/config.c b/server/config.c index fb07623b0a..a9adddd75f 100644 --- a/server/config.c +++ b/server/config.c @@ -80,6 +80,7 @@ APR_HOOK_STRUCT( APR_HOOK_LINK(quick_handler) APR_HOOK_LINK(optional_fn_retrieve) APR_HOOK_LINK(test_config) + APR_HOOK_LINK(pre_htaccess) ) AP_IMPLEMENT_HOOK_RUN_ALL(int, header_parser, @@ -171,6 +172,9 @@ AP_IMPLEMENT_HOOK_RUN_FIRST(int, handler, (request_rec *r), AP_IMPLEMENT_HOOK_RUN_FIRST(int, quick_handler, (request_rec *r, int lookup), (r, lookup), DECLINED) +AP_IMPLEMENT_HOOK_RUN_FIRST(int, pre_htaccess, (request_rec *r, const char *filename), + (r, filename), DECLINED) + /* hooks with no args are implemented last, after disabling APR hook probes */ #if defined(APR_HOOK_PROBES_ENABLED) #undef APR_HOOK_PROBES_ENABLED @@ -2078,6 +2082,7 @@ AP_CORE_DECLARE(int) ap_parse_htaccess(ap_conf_vector_t **result, struct htaccess_result *new; ap_conf_vector_t *dc = NULL; apr_status_t status; + int rc; /* firstly, search cache */ for (cache = r->htaccess; cache != NULL; cache = cache->next) { @@ -2104,6 +2109,10 @@ AP_CORE_DECLARE(int) ap_parse_htaccess(ap_conf_vector_t **result, */ filename = ap_make_full_path(r->pool, d, ap_getword_conf(r->pool, &access_name)); + rc = ap_run_pre_htaccess(r, filename); + if (rc != DECLINED && rc != OK) { + return rc; + } status = ap_pcfg_openfile(&f, r->pool, filename); if (status == APR_SUCCESS) { |