ben 96/10/19 08:17:07
Modified: src http_request.c
Log:
Apply <Location> sections before name translation.
Revision Changes Path
1.22 +19 -2 apache/src/http_request.c
Index: http_request.c
===================================================================
RCS file: /export/home/cvs/apache/src/http_request.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -C3 -r1.21 -r1.22
*** http_request.c 1996/10/19 14:44:39 1.21
--- http_request.c 1996/10/19 15:17:06 1.22
***************
*** 50,56 ****
*
*/
! /* $Id: http_request.c,v 1.21 1996/10/19 14:44:39 ben Exp $ */
/*
* http_request.c: functions to get and process requests
--- 50,56 ----
*
*/
! /* $Id: http_request.c,v 1.22 1996/10/19 15:17:06 ben Exp $ */
/*
* http_request.c: functions to get and process requests
***************
*** 567,572 ****
--- 567,573 ----
rnew->server = r->server;
rnew->request_config = create_request_config (rnew->pool);
rnew->htaccess = r->htaccess; /* copy htaccess cache */
+ rnew->per_dir_config=r->server->lookup_defaults;
set_sub_req_protocol (rnew, r);
if (new_file[0] == '/')
***************
*** 587,592 ****
--- 588,598 ----
getparents (rnew->uri);
+ if ((res = location_walk (rnew))) {
+ rnew->status=res;
+ return rnew;
+ }
+
res = translate_name(rnew);
if (res)
{
***************
*** 600,605 ****
--- 606,613 ----
* of translate_name.
* Instead we rely on the cache of .htaccess results.
*/
+ /* NB: directory_walk() clears the per_dir_config, so we don't inherit
from
+ location_walk() above */
if ((res = directory_walk (rnew))
|| (res = file_walk (rnew))
***************
*** 776,781 ****
--- 784,790 ----
void process_request_internal (request_rec *r)
{
int access_status;
+ void *save_per_dir_config;
/* Kludge to be reading the assbackwards field outside of protocol.c,
* but we've got to check for this sort of nonsense somewhere...
***************
*** 816,826 ****
getparents(r->uri); /* OK --- shrinking transformations... */
}
if ((access_status = translate_name (r))) {
decl_die (access_status, "translate", r);
return;
}
!
if ((access_status = directory_walk (r))) {
die (access_status, r);
return;
--- 825,843 ----
getparents(r->uri); /* OK --- shrinking transformations... */
}
+ if ((access_status = location_walk (r))) {
+ die (access_status, r);
+ return;
+ }
+
if ((access_status = translate_name (r))) {
decl_die (access_status, "translate", r);
return;
}
!
! /* NB: directory_walk() clears the per_dir_config, so we don't inherit
from
! location_walk() above */
!
if ((access_status = directory_walk (r))) {
die (access_status, r);
return;