ben 98/02/08 10:16:05
Modified: src CHANGES
src/main http_main.c http_request.c
Log:
Make sure we use the canonical filename where we need to.
Revision Changes Path
1.621 +3 -0 apache-1.3/src/CHANGES
Index: CHANGES
===================================================================
RCS file: /export/home/cvs/apache-1.3/src/CHANGES,v
retrieving revision 1.620
retrieving revision 1.621
diff -u -r1.620 -r1.621
--- CHANGES 1998/02/08 15:06:53 1.620
+++ CHANGES 1998/02/08 18:15:58 1.621
@@ -1,5 +1,8 @@
Changes with Apache 1.3b5
+ *) Sort out problems with canonical filename handling happening too late.
+ [Dean Gaudet, Ben Laurie]
+
Changes with Apache 1.3b4
*) The module structure was modified to include a *dynamic_load_handle
1.284 +5 -0 apache-1.3/src/main/http_main.c
Index: http_main.c
===================================================================
RCS file: /export/home/cvs/apache-1.3/src/main/http_main.c,v
retrieving revision 1.283
retrieving revision 1.284
diff -u -r1.283 -r1.284
--- http_main.c 1998/02/07 10:27:52 1.283
+++ http_main.c 1998/02/08 18:16:01 1.284
@@ -112,6 +112,9 @@
#ifdef MULTITHREAD
/* special debug stuff -- PCS */
+/* Set this non-zero if you are prepared to put up with more than one log
entry per second */
+#define SEVERELY_VERBOSE 0
+
/* APD1() to APD5() are macros to help us debug. Then can either
* log to the screen or the error_log file. In release builds, this
* macros do nothing. In debug builds, they send messages at priority
@@ -4376,8 +4379,10 @@
}
while (1) {
+#if SEVERELY_VERBOSE
APD4("child PID %d: thread_main total_jobs=%d start_exit=%d",
my_pid, total_jobs, start_exit);
+#endif
if ((max_jobs_per_exe && (total_jobs > max_jobs_per_exe) &&
!start_exit)) {
start_exit = 1;
wait_time = 1;
1.106 +6 -6 apache-1.3/src/main/http_request.c
Index: http_request.c
===================================================================
RCS file: /export/home/cvs/apache-1.3/src/main/http_request.c,v
retrieving revision 1.105
retrieving revision 1.106
diff -u -r1.105 -r1.106
--- http_request.c 1998/02/03 07:32:16 1.105
+++ http_request.c 1998/02/08 18:16:03 1.106
@@ -291,8 +291,6 @@
return OK;
}
- test_filename = pstrdup(r->pool, r->filename);
-
/*
* Go down the directory hierarchy. Where we have to check for symlinks,
* do so. Where a .htaccess file has permission to override anything,
@@ -304,7 +302,7 @@
* Fake filenames (i.e. proxy:) only match Directory sections.
*/
- if (!os_is_path_absolute(test_filename))
+ if (!os_is_path_absolute(r->filename))
{
void *this_conf, *entry_config;
core_dir_config *entry_core;
@@ -320,14 +318,14 @@
this_conf = NULL;
if (entry_core->r) {
- if (!regexec(entry_core->r, test_filename, 0, NULL, 0))
+ if (!regexec(entry_core->r, r->filename, 0, NULL, 0))
this_conf = entry_config;
}
else if (entry_core->d_is_fnmatch) {
- if (!fnmatch(entry_dir, test_filename, 0))
+ if (!fnmatch(entry_dir, r->filename, 0))
this_conf = entry_config;
}
- else if (!strncmp(test_filename, entry_dir, strlen(entry_dir)))
+ else if (!strncmp(r->filename, entry_dir, strlen(entry_dir)))
this_conf = entry_config;
if (this_conf)
@@ -342,6 +340,8 @@
}
r->filename = os_canonical_filename(r->pool, r->filename);
+ test_filename = pstrdup(r->pool, r->filename);
+
no2slash(test_filename);
num_dirs = count_dirs(test_filename);