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);