rse 98/02/26 03:04:05
Modified: src CHANGES
src/modules/standard mod_rewrite.c
Log:
The RewriteLoglevel was different and incorrect against the docs and
the per-server config merging was also inconsistent and bogus.
Revision Changes Path
1.669 +6 -0 apache-1.3/src/CHANGES
Index: CHANGES
===================================================================
RCS file: /export/home/cvs/apache-1.3/src/CHANGES,v
retrieving revision 1.668
retrieving revision 1.669
diff -u -r1.668 -r1.669
--- CHANGES 1998/02/26 10:18:31 1.668
+++ CHANGES 1998/02/26 11:04:01 1.669
@@ -1,5 +1,11 @@
Changes with Apache 1.3b6
+ *) Fix initialization of RewriteLogLevel (default now is 0 as documented
+ and not 1) and the per-virtual-server merging of directives. Now all
+ directives except `RewriteEngine' and `RewriteOption' are either
+ completely overridden (default) or completely inherited (when
+ `RewriteOptions inherit') is used. [Ralf S. Engelschall, PR#1325]
+
*) Fix `RewriteMap' program lookup in situations where such maps are
defined but disabled (`RewriteEngine off') in per-server context.
[Ralf S. Engelschall, PR#1431]
1.74 +35 -21 apache-1.3/src/modules/standard/mod_rewrite.c
Index: mod_rewrite.c
===================================================================
RCS file: /export/home/cvs/apache-1.3/src/modules/standard/mod_rewrite.c,v
retrieving revision 1.73
retrieving revision 1.74
diff -u -r1.73 -r1.74
--- mod_rewrite.c 1998/02/26 10:18:34 1.73
+++ mod_rewrite.c 1998/02/26 11:04:03 1.74
@@ -249,7 +249,7 @@
a->options = OPTION_NONE;
a->rewritelogfile = NULL;
a->rewritelogfp = -1;
- a->rewriteloglevel = 1;
+ a->rewriteloglevel = 0;
a->rewritelockfile = NULL;
a->rewritelockfp = -1;
a->rewritemaps = make_array(p, 2, sizeof(rewritemap_entry));
@@ -267,30 +267,44 @@
base = (rewrite_server_conf *)basev;
overrides = (rewrite_server_conf *)overridesv;
- a->state = overrides->state;
- a->options = overrides->options;
- a->rewritelogfile = base->rewritelogfile != NULL ?
- base->rewritelogfile : overrides->rewritelogfile;
- a->rewritelogfp = base->rewritelogfp != -1 ?
- base->rewritelogfp : overrides->rewritelogfp;
- a->rewriteloglevel = overrides->rewriteloglevel;
- a->rewritelockfile = base->rewritelockfile != NULL ?
- base->rewritelockfile : overrides->rewritelockfile;
- a->rewritelockfp = base->rewritelockfp != -1 ?
- base->rewritelockfp : overrides->rewritelockfp;
+ a->state = overrides->state;
+ a->options = overrides->options;
if (a->options & OPTION_INHERIT) {
- a->rewritemaps = append_arrays(p, overrides->rewritemaps,
- base->rewritemaps);
- a->rewriteconds = append_arrays(p, overrides->rewriteconds,
- base->rewriteconds);
- a->rewriterules = append_arrays(p, overrides->rewriterules,
- base->rewriterules);
+ /*
+ * local directives override
+ * and anything else is inherited
+ */
+ a->rewriteloglevel = overrides->rewriteloglevel != 0 ?
+ overrides->rewriteloglevel :
base->rewriteloglevel;
+ a->rewritelogfile = overrides->rewritelogfile != NULL ?
+ overrides->rewritelogfile :
base->rewritelogfile;
+ a->rewritelogfp = overrides->rewritelogfp != -1 ?
+ overrides->rewritelogfp : base->rewritelogfp;
+ a->rewritelockfile = overrides->rewritelockfile != NULL ?
+ overrides->rewritelockfile :
base->rewritelockfile;
+ a->rewritelockfp = overrides->rewritelockfp != -1 ?
+ overrides->rewritelockfp : base->rewritelockfp;
+ a->rewritemaps = append_arrays(p, overrides->rewritemaps,
+ base->rewritemaps);
+ a->rewriteconds = append_arrays(p, overrides->rewriteconds,
+ base->rewriteconds);
+ a->rewriterules = append_arrays(p, overrides->rewriterules,
+ base->rewriterules);
}
else {
- a->rewritemaps = overrides->rewritemaps;
- a->rewriteconds = overrides->rewriteconds;
- a->rewriterules = overrides->rewriterules;
+ /*
+ * local directives override
+ * and anything else gets defaults
+ */
+ a->rewriteloglevel = overrides->rewriteloglevel;
+ a->rewritelogfile = overrides->rewritelogfile;
+ a->rewritelogfp = overrides->rewritelogfp;
+ a->rewritelockfile = overrides->rewritelockfile;
+ a->rewritelockfp = overrides->rewritelockfp;
+ a->rewritemaps = overrides->rewritemaps;
+ a->rewriteconds = overrides->rewriteconds;
+ a->rewriterules = overrides->rewriterules;
}
return (void *)a;