AuthFormLoginRequiredLocation, AuthFormLoginSuccessLocation and
AuthFormLogoutLocation directives. [Graham Leggett]
- *) core: Add dirwalk_stat hook. [Jeff Trawick]
+ *) core: Add dirwalk_stat and pre_htaccess hooks, allowing mpm-itk
+ to be used without patches to httpd core. [Jeff Trawick]
*) mod_proxy: Allow for persistence of local changes (via the
balancer-manager) between graceful and normal restarts.
*/
AP_DECLARE_HOOK(void,optional_fn_retrieve,(void))
+/**
+ * Allow modules to perform a check immediately prior to opening htaccess.
+ * @param r The current request
+ * @param filename The htaccess file which will be processed
+ * @return HTTP status code to fail the operation, or DECLINED to let later
+ * modules decide
+ */
+AP_DECLARE_HOOK(int,pre_htaccess,(request_rec *r, const char *filename))
+
/**
* A generic pool cleanup that will reset a pointer to NULL. For use with
* apr_pool_cleanup_register.
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,
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
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) {
*/
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) {