httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Roy Fielding <field...@hyperreal.org>
Subject cvs commit: apachen/src/main http_request.c
Date Sun, 14 Sep 1997 10:53:26 GMT
fielding    97/09/14 03:53:25

  Modified:    src/main http_request.c
  Log:
  Cleanup an ifdef section so that it is readable by mere mortals
  (and indent, which puked rather badly on the interleaved elses).
  
  Revision  Changes    Path
  1.84      +21 -14    apachen/src/main/http_request.c
  
  Index: http_request.c
  ===================================================================
  RCS file: /export/home/cvs/apachen/src/main/http_request.c,v
  retrieving revision 1.83
  retrieving revision 1.84
  diff -u -r1.83 -r1.84
  --- http_request.c	1997/09/11 19:07:51	1.83
  +++ http_request.c	1997/09/14 10:53:24	1.84
  @@ -199,8 +199,27 @@
   	}
   #if defined(ENOENT) && defined(ENOTDIR)
   	else if (errno == ENOENT || errno == ENOTDIR) {
  +	    last_cp = cp;
  +	
  +	    while (--cp > path && *cp != '/')
  +		continue;
  +
  +	    while (cp > path && cp[-1] == '/')
  +		--cp;
  +	} 
  +	else {
  +#if defined(EACCES)
  +	    if (errno != EACCES) 
  +#endif 
  +	    aplog_error(APLOG_MARK, APLOG_ERR, r->server, 
  +			"access to %s failed for %s", r->uri,
  +			get_remote_host(r->connection, r->per_dir_config,
  +			                REMOTE_NAME));
  +	    return HTTP_FORBIDDEN;
  +	}
   #else
  -#error ENOENT || ENOTDIR not defined -- check the comment below this line in the source
for details
  +#error ENOENT || ENOTDIR not defined; please see the
  +#error comments at this line in the source for a workaround.
   	/*
   	 * If ENOENT || ENOTDIR is not defined in one of the your OS's
   	 * include files, Apache does not know how to check to see why
  @@ -209,7 +228,7 @@
   	 * that it is possible for someone to get a directory
   	 * listing of a directory even though there is an index
   	 * (eg. index.html) file in it.  If you do not have a
  -	 * problem with this, delete the above #error line and
  +	 * problem with this, delete the above #error lines and
   	 * start the compile again.  If you need to do this, please
   	 * submit a bug report from http://www.apache.org/bug_report.html
   	 * letting us know that you needed to do this.  Please be
  @@ -217,7 +236,6 @@
   	 */
   
   	else {
  -#endif
   	    last_cp = cp;
   	
   	    while (--cp > path && *cp != '/')
  @@ -226,17 +244,6 @@
   	    while (cp > path && cp[-1] == '/')
   		--cp;
   	} 
  -#if defined(ENOENT) && defined(ENOTDIR)
  -	else {
  -#if defined(EACCES)
  -	    if (errno != EACCES) 
  -#endif 
  -	    aplog_error(APLOG_MARK, APLOG_ERR, r->server, 
  -			"access to %s failed for %s", r->uri,
  -			get_remote_host(r->connection, r->per_dir_config, REMOTE_NAME));
  -
  -	    return HTTP_FORBIDDEN;
  -	}
   #endif /* ENOENT && ENOTDIR */
       }
       return OK;
  
  
  

Mime
View raw message