marc        97/02/17 02:46:09

  Modified:    src       http_core.c http_request.c http_core.h
  Log:
  Fix the hierarchical passing of satisfy modes; before a .htaccess
  file could make the satisfy mode revert back to Satisfy All
  even if there were no authentication directives in the directory.
  
  Submitted by: Ed Korthof
  Reviewed by: Paul Sutton, Dean Gaudet, Marc Slemko
  
  Revision  Changes    Path
  1.70      +2 -2      apache/src/http_core.c
  
  Index: http_core.c
  ===================================================================
  RCS file: /export/home/cvs/apache/src/http_core.c,v
  retrieving revision 1.69
  retrieving revision 1.70
  diff -C3 -r1.69 -r1.70
  *** http_core.c       1997/02/15 11:33:51     1.69
  --- http_core.c       1997/02/17 10:46:06     1.70
  ***************
  *** 94,100 ****
    
        conf->hostname_lookups = 2;/* binary, but will use 2 as an "unset = on" 
*/
        conf->do_rfc1413 = DEFAULT_RFC1413 | 2;  /* set bit 1 to indicate 
default */
  !     conf->satisfy = SATISFY_ALL;
    
    #ifdef RLIMIT_CPU
        conf->limit_cpu = NULL;
  --- 94,100 ----
    
        conf->hostname_lookups = 2;/* binary, but will use 2 as an "unset = on" 
*/
        conf->do_rfc1413 = DEFAULT_RFC1413 | 2;  /* set bit 1 to indicate 
default */
  !     conf->satisfy = SATISFY_NOSPEC;
    
    #ifdef RLIMIT_CPU
        conf->limit_cpu = NULL;
  ***************
  *** 165,171 ****
    
        conf->sec = append_arrays (a, base->sec, new->sec);
    
  !     conf->satisfy = new->satisfy;
        return (void*)conf;
    }
    
  --- 165,171 ----
    
        conf->sec = append_arrays (a, base->sec, new->sec);
    
  !     if (new->satisfy != SATISFY_NOSPEC) conf->satisfy = new->satisfy;
        return (void*)conf;
    }
    
  
  
  
  1.43      +3 -3      apache/src/http_request.c
  
  Index: http_request.c
  ===================================================================
  RCS file: /export/home/cvs/apache/src/http_request.c,v
  retrieving revision 1.42
  retrieving revision 1.43
  diff -C3 -r1.42 -r1.43
  *** http_request.c    1997/02/10 15:17:44     1.42
  --- http_request.c    1997/02/17 10:46:07     1.43
  ***************
  *** 658,664 ****
        if ((res = directory_walk (rnew))
        || (res = file_walk (rnew))
        || (res = location_walk (rnew))
  !         || (satisfies(rnew) == SATISFY_ALL?
            ((res = check_access (rnew))
             || (some_auth_required (rnew) &&
                 ((res = check_user_id (rnew)) || (res = check_auth (rnew))))):
  --- 658,664 ----
        if ((res = directory_walk (rnew))
        || (res = file_walk (rnew))
        || (res = location_walk (rnew))
  !         || ((satisfies(rnew)==SATISFY_ALL || 
satisfies(rnew)==SATISFY_NOSPEC)?
            ((res = check_access (rnew))
             || (some_auth_required (rnew) &&
                 ((res = check_user_id (rnew)) || (res = check_auth (rnew))))):
  ***************
  *** 707,713 ****
        
        if ((res = directory_walk (rnew))
        || (res = file_walk (rnew))
  !     || (satisfies(rnew) == SATISFY_ALL?
            ((res = check_access (rnew))
             || (some_auth_required (rnew) &&
                 ((res = check_user_id (rnew)) || (res = check_auth (rnew))))):
  --- 707,713 ----
        
        if ((res = directory_walk (rnew))
        || (res = file_walk (rnew))
  !         || ((satisfies(rnew)==SATISFY_ALL || 
satisfies(rnew)==SATISFY_NOSPEC)?
            ((res = check_access (rnew))
             || (some_auth_required (rnew) &&
                 ((res = check_user_id (rnew)) || (res = check_auth (rnew))))):
  ***************
  *** 916,922 ****
        }
        
        switch (satisfies(r)) {
  !     case SATISFY_ALL:
        if ((access_status = check_access (r)) != 0) {
            decl_die (access_status, "check access", r);
            return;
  --- 916,922 ----
        }
        
        switch (satisfies(r)) {
  !     case SATISFY_ALL: case SATISFY_NOSPEC:
        if ((access_status = check_access (r)) != 0) {
            decl_die (access_status, "check access", r);
            return;
  
  
  
  1.20      +1 -0      apache/src/http_core.h
  
  Index: http_core.h
  ===================================================================
  RCS file: /export/home/cvs/apache/src/http_core.h,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -C3 -r1.19 -r1.20
  *** http_core.h       1997/02/10 15:17:43     1.19
  --- http_core.h       1997/02/17 10:46:07     1.20
  ***************
  *** 80,85 ****
  --- 80,86 ----
    
    #define SATISFY_ALL 0
    #define SATISFY_ANY 1
  + #define SATISFY_NOSPEC 2
    
    int allow_options (request_rec *);
    int allow_overrides (request_rec *);
  
  
  

Reply via email to