httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From field...@hyperreal.org
Subject cvs commit: apache-1.3/src/main http_config.c
Date Sat, 26 Sep 1998 00:07:09 GMT
fielding    98/09/25 17:07:09

  Modified:    src      CHANGES
               src/main http_config.c
  Log:
  Reconstructed the loop through multiple htaccess file names so
  that missing files are not confused with unreadable files.
  
  Revision  Changes    Path
  1.1081    +4 -0      apache-1.3/src/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /home/cvs/apache-1.3/src/CHANGES,v
  retrieving revision 1.1080
  retrieving revision 1.1081
  diff -u -r1.1080 -r1.1081
  --- CHANGES	1998/09/25 23:24:18	1.1080
  +++ CHANGES	1998/09/26 00:07:06	1.1081
  @@ -1,5 +1,9 @@
   Changes with Apache 1.3.3
    
  +  *) Reconstructed the loop through multiple htaccess file names so
  +     that missing files are not confused with unreadable files.
  +     [Roy Fielding]
  +
     *) The ap_pfopen and ap_pfdopen routines were failing to protect the
        errno on an error, which leads to one error being mistaken for
        another when reading non-existant .htaccess files.
  
  
  
  1.134     +33 -35    apache-1.3/src/main/http_config.c
  
  Index: http_config.c
  ===================================================================
  RCS file: /home/cvs/apache-1.3/src/main/http_config.c,v
  retrieving revision 1.133
  retrieving revision 1.134
  diff -u -r1.133 -r1.134
  --- http_config.c	1998/09/25 23:39:50	1.133
  +++ http_config.c	1998/09/26 00:07:08	1.134
  @@ -1206,7 +1206,7 @@
       char *filename = NULL;
       const struct htaccess_result *cache;
       struct htaccess_result *new;
  -    void *dc;
  +    void *dc = NULL;
   
   /* firstly, search cache */
       for (cache = r->htaccess; cache != NULL; cache = cache->next)
  @@ -1224,41 +1224,39 @@
       parms.path = ap_pstrdup(r->pool, d);
   
       /* loop through the access names and find the first one */
  -    while (!f && access_name[0]) {
  -	char *w = ap_getword_conf(r->pool, &access_name);
  -	filename = ap_make_full_path(r->pool, d, w);
  -	f = ap_pcfg_openfile(r->pool, filename);
  -    }
  -    if (f) {
  -	dc = ap_create_per_dir_config(r->pool);
  -
  -	parms.config_file = f;
  -
  -	errmsg = ap_srm_command_loop(&parms, dc);
  -
  -	ap_cfg_closefile(f);
  -
  -	if (errmsg) {
  -	    ap_log_rerror(APLOG_MARK, APLOG_ALERT|APLOG_NOERRNO, r, "%s: %s",
  -			  filename, errmsg);
  -            return HTTP_INTERNAL_SERVER_ERROR;
  -	}
   
  -	*result = dc;
  -    }
  -    else {
  -	if (errno == ENOENT || errno == ENOTDIR)
  -	    dc = NULL;
  -	else {
  -	    ap_log_rerror(APLOG_MARK, APLOG_CRIT, r,
  -			  "%s pcfg_openfile: unable to check htaccess file, "
  -			  "ensure it is readable",
  -			  filename);
  -	    ap_table_setn(r->notes, "error-notes",
  -			  "Server unable to read htaccess file, denying "
  -			  "access to be safe");
  -	    return HTTP_FORBIDDEN;
  -	}
  +    while (access_name[0]) {
  +        filename = ap_make_full_path(r->pool, d,
  +                                     ap_getword_conf(r->pool, &access_name));
  +
  +        if ((f = ap_pcfg_openfile(r->pool, filename)) != NULL) {
  +
  +            dc = ap_create_per_dir_config(r->pool);
  +
  +            parms.config_file = f;
  +
  +            errmsg = ap_srm_command_loop(&parms, dc);
  +
  +            ap_cfg_closefile(f);
  +
  +            if (errmsg) {
  +                ap_log_rerror(APLOG_MARK, APLOG_ALERT|APLOG_NOERRNO, r,
  +                              "%s: %s", filename, errmsg);
  +                return HTTP_INTERNAL_SERVER_ERROR;
  +            }
  +            *result = dc;
  +            break;
  +        }
  +        else if (errno != ENOENT && errno != ENOTDIR) {
  +            ap_log_rerror(APLOG_MARK, APLOG_CRIT, r,
  +                          "%s pcfg_openfile: unable to check htaccess file, "
  +                          "ensure it is readable",
  +                          filename);
  +            ap_table_setn(r->notes, "error-notes",
  +                          "Server unable to read htaccess file, denying "
  +                          "access to be safe");
  +            return HTTP_FORBIDDEN;
  +        }
       }
   
   /* cache it */
  
  
  

Mime
View raw message