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;
  
  
  

Reply via email to