Changes with Apache 2.4.26
+ *) Evaluate nested If/ElseIf/Else configuration blocks.
+ [Luca Toscano, Jacob Champion]
+
*) mod_substitute: Fix spurious AH01328 (Line too long) errors on EBCDIC
systems. [Eric Covener]
PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
[ start all new proposals below, under PATCHES PROPOSED. ]
- *) core: evaluate nested If/ElseIf/Else sections rather than silently ignore
- them.
- trunk patch: http://svn.apache.org/r1792589
- 2.4.x patch: trunk works (modulo CHANGES)
- +1: elukey, jim, yalvic
-
*) confirm ab + https w/ openssl 1.1.0 on unix is OK.
Gregg says it's broken on Windows.
Document it somewhere either way.
return OK;
}
-AP_DECLARE(int) ap_if_walk(request_rec *r)
+static int ap_if_walk_sub(request_rec *r, core_dir_config* dconf)
{
ap_conf_vector_t *now_merged = NULL;
- core_dir_config *dconf = ap_get_core_module_config(r->per_dir_config);
ap_conf_vector_t **sec_ent = NULL;
int num_sec = 0;
walk_cache_t *cache;
int prev_result = -1;
walk_walked_t *last_walk;
- if (dconf->sec_if) {
+ if (dconf && dconf->sec_if) {
sec_ent = (ap_conf_vector_t **)dconf->sec_if->elts;
num_sec = dconf->sec_if->nelts;
}
}
cache->per_dir_result = r->per_dir_config;
+ if (now_merged) {
+ core_dir_config *dconf_merged = ap_get_core_module_config(now_merged);
+
+ /* Allow nested <If>s and their configs to get merged
+ * with the current one.
+ */
+ return ap_if_walk_sub(r, dconf_merged);
+ }
+
return OK;
}
+AP_DECLARE(int) ap_if_walk(request_rec *r)
+{
+ core_dir_config *dconf = ap_get_core_module_config(r->per_dir_config);
+ int status = ap_if_walk_sub(r, dconf);
+ return status;
+}
+
/*****************************************************************
*
* The sub_request mechanism.