cvs commit: apache-1.3/src/main http_request.c
ben 99/11/09 10:02:24 Modified:src/main http_request.c Log: Make sure that an error document that needs auth but hasn't got an auth type still reports a cascaded error. Revision ChangesPath 1.151 +1 -1 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.150 retrieving revision 1.151 diff -u -r1.150 -r1.151 --- http_request.c1999/10/21 20:44:43 1.150 +++ http_request.c1999/11/09 18:02:19 1.151 @@ -1176,7 +1176,7 @@ case SATISFY_ANY: if (((access_status = ap_check_access(r)) != 0) || !ap_auth_type(r)) { if (!ap_some_auth_required(r)) { -decl_die(access_status, ap_auth_type(r) +decl_die(access_status ? access_status : HTTP_INTERNAL_SERVER_ERROR, ap_auth_type(r) ? check access : perform authentication. AuthType not set!, r); return;
cvs commit: apache-1.3/src/main http_request.c
dgaudet 99/05/12 09:50:43 Modified:src CHANGES src/main http_request.c Log: don't assume the struct stat passed to stat() is left alone when the stat fails Submitted by: Ed Korthof [EMAIL PROTECTED] Revision ChangesPath 1.1353+3 -0 apache-1.3/src/CHANGES Index: CHANGES === RCS file: /home/cvs/apache-1.3/src/CHANGES,v retrieving revision 1.1352 retrieving revision 1.1353 diff -u -r1.1352 -r1.1353 --- CHANGES 1999/05/07 00:38:05 1.1352 +++ CHANGES 1999/05/12 16:50:40 1.1353 @@ -1,5 +1,8 @@ Changes with Apache 1.3.7 + *) When stat() fails, don't assume anything about the contents of + the struct stat. [Ed Korthof [EMAIL PROTECTED]] + *) It's OK for a semop to return EINTR, just loop around and try again. [Dean Gaudet] 1.148 +10 -8 apache-1.3/src/main/http_request.c Index: http_request.c === RCS file: /home/cvs/apache-1.3/src/main/http_request.c,v retrieving revision 1.147 retrieving revision 1.148 diff -u -r1.147 -r1.148 --- http_request.c1999/04/20 23:38:44 1.147 +++ http_request.c1999/05/12 16:50:42 1.148 @@ -265,8 +265,12 @@ *cp = '\0'; return OK; } + /* must set this to zero, some stat()s may have corrupted it + * even if they returned an error. + */ + r-finfo.st_mode = 0; #if defined(ENOENT) defined(ENOTDIR) -else if (errno == ENOENT || errno == ENOTDIR) { +if (errno == ENOENT || errno == ENOTDIR) { last_cp = cp; while (--cp path *cp != '/') @@ -299,15 +303,13 @@ * you needed to do this. Please be sure to include the operating * system you are using. */ -else { -last_cp = cp; + last_cp = cp; -while (--cp path *cp != '/') -continue; + while (--cp path *cp != '/') + continue; -while (cp path cp[-1] == '/') ---cp; -} + while (cp path cp[-1] == '/') + --cp; #endif /* ENOENT ENOTDIR */ } return OK;
cvs commit: apache-1.3/src/main http_request.c
dgaudet 99/04/20 16:38:45 Modified:src CHANGES src/main http_request.c Log: copy expecting_100 when doing an internal redirect PR: 3910 Submitted by: Jose KAHAN [EMAIL PROTECTED] Revision ChangesPath 1.1316+3 -0 apache-1.3/src/CHANGES Index: CHANGES === RCS file: /home/cvs/apache-1.3/src/CHANGES,v retrieving revision 1.1315 retrieving revision 1.1316 diff -u -r1.1315 -r1.1316 --- CHANGES 1999/04/20 21:53:22 1.1315 +++ CHANGES 1999/04/20 23:38:41 1.1316 @@ -1,5 +1,8 @@ Changes with Apache 1.3.7 + *) The 100 Continue response wasn't being sent after internal + redirects. [Jose KAHAN [EMAIL PROTECTED]] PR#3910 + *) When padding the name with spaces for display, mod_autoindex would count , , and in their escaped width, messing up the display. [Dean Gaudet] PR#4075 1.147 +1 -0 apache-1.3/src/main/http_request.c Index: http_request.c === RCS file: /home/cvs/apache-1.3/src/main/http_request.c,v retrieving revision 1.146 retrieving revision 1.147 diff -u -r1.146 -r1.147 --- http_request.c1999/03/07 15:05:36 1.146 +++ http_request.c1999/04/20 23:38:44 1.147 @@ -1309,6 +1309,7 @@ new-htaccess= r-htaccess; new-no_cache= r-no_cache; +new-expecting_100= r-expecting_100; new-no_local_copy = r-no_local_copy; new-read_length = r-read_length; /* We can only read it once */ new-vlist_validator = r-vlist_validator;
cvs commit: apache-1.3/src/main http_request.c
martin 99/01/09 13:37:57 Modified:src/main http_request.c Log: Save the EBCDIC conversion setting across invocations of ap_run_sub_req(). Previously, virtually SSI-included raw ascii documents would destroy the conversion setting of the including document. Revision ChangesPath 1.144 +7 -0 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.143 retrieving revision 1.144 diff -u -r1.143 -r1.144 --- http_request.c1999/01/08 20:08:23 1.143 +++ http_request.c1999/01/09 21:37:56 1.144 @@ -912,7 +912,14 @@ API_EXPORT(int) ap_run_sub_req(request_rec *r) { +#ifndef CHARSET_EBCDIC int retval = ap_invoke_handler(r); +#else /*CHARSET_EBCDIC*/ +/* Save the EBCDIC conversion setting of the caller across subrequests */ +int convert = ap_bgetflag(r-connection-client, B_EBCDIC2ASCII); +int retval = ap_invoke_handler(r); +ap_bsetflag(r-connection-client, B_EBCDIC2ASCII, convert); +#endif /*CHARSET_EBCDIC*/ ap_finalize_sub_req_protocol(r); return retval; }
cvs commit: apache-1.3/src/main http_request.c
coar98/10/20 10:42:45 Modified:src/main http_request.c Log: Use a common routine to check for absoluteness of a path; this works for both Win32 and Unix and gets rid of #ifdefs. PR: 2976, 3074 Submitted by: Ken Parzygnat [EMAIL PROTECTED] Reviewed by: Ken Coar Revision ChangesPath 1.135 +1 -8 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.134 retrieving revision 1.135 diff -u -r1.134 -r1.135 --- http_request.c1998/10/15 07:58:24 1.134 +++ http_request.c1998/10/20 17:42:43 1.135 @@ -832,14 +832,7 @@ * file may not have a uri associated with it -djg */ rnew-uri = INTERNALLY GENERATED file-relative req; -#ifdef WIN32 -rnew-filename = ((new_file[0] == '/' - || (ap_isalpha(new_file[0]) -new_file[1] == ':' -new_file[2] == '/')) ? -#else -rnew-filename = ((new_file[0] == '/') ? -#endif +rnew-filename = ((ap_os_is_path_absolute(new_file)) ? ap_pstrdup(rnew-pool, new_file) : ap_make_full_path(rnew-pool, fdir, new_file)); rnew-per_dir_config = r-server-lookup_defaults;
cvs commit: apache-1.3/src/main http_request.c
coar98/09/30 21:14:43 Modified:src/main http_request.c Log: ap_sub_req_lookup_file() was assuming that all absolute paths begin with / -- which obviously isn't the case for Win32. #ifdef this to do the right thing on Win32. (It's unclear whether a leading / should still be considered a valid absolute path for Win32, since it's thereby inheriting the current drive. At least most of the hole is closed.) PR: 2976, 3074 Submitted by: Ken Parzygnat [EMAIL PROTECTED] Reviewed by: Ken Coar Revision ChangesPath 1.131 +11 -2 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.130 retrieving revision 1.131 diff -u -r1.130 -r1.131 --- http_request.c1998/08/11 00:09:46 1.130 +++ http_request.c1998/10/01 04:14:42 1.131 @@ -188,8 +188,10 @@ } #ifdef WIN32 -/* If the path is x:/, then convert it to x:/., coz that's what stat needs to work properly */ -if(strlen(path) == 3 path[1] == ':') { +/* If the path is x:/, then convert it to x:/., coz that's what stat + * needs to work properly + */ +if (strlen(path) == 3 path[1] == ':') { strcpy(buf,path); buf[3]='.'; buf[4]='\0'; @@ -826,7 +828,14 @@ * file may not have a uri associated with it -djg */ rnew-uri = INTERNALLY GENERATED file-relative req; +#ifdef WIN32 +rnew-filename = ((new_file[0] == '/' + || (ap_isalpha(new_file[0]) +new_file[1] == ':' +new_file[2] == '/')) ? +#else rnew-filename = ((new_file[0] == '/') ? +#endif ap_pstrdup(rnew-pool, new_file) : ap_make_full_path(rnew-pool, fdir, new_file)); rnew-per_dir_config = r-server-lookup_defaults;
cvs commit: apache-1.3/src/main http_request.c
martin 98/03/26 06:06:49 Modified:src/main http_request.c Log: Don't refuse to serve if %2F occurs in the query part only, or in a proxy request (this shouldn't return a 404 anyway, but a 400) Revision ChangesPath 1.114 +7 -4 apache-1.3/src/main/http_request.c Index: http_request.c === RCS file: /home/cvs/apache-1.3/src/main/http_request.c,v retrieving revision 1.113 retrieving revision 1.114 diff -u -u -r1.113 -r1.114 --- http_request.c1998/03/17 07:54:22 1.113 +++ http_request.c1998/03/26 14:06:48 1.114 @@ -1020,10 +1020,13 @@ return; } -access_status = unescape_url(r-uri); -if (access_status) { - die(access_status, r); - return; +/* Ignore embedded %2F's in path for proxy requests */ +if (!r-proxyreq r-parsed_uri.path) { + access_status = unescape_url(r-parsed_uri.path); + if (access_status) { + die(access_status, r); + return; + } } getparents(r-uri); /* OK --- shrinking transformations... */
cvs commit: apache-1.3/src/main http_request.c
dgaudet 98/03/06 00:26:19 Modified:src/main http_request.c Log: No functional difference, other than to short-circuit earlier if there are no Location sections. I wanted to do this before I made another change which will have functional difference. Revision ChangesPath 1.110 +43 -41apache-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.109 retrieving revision 1.110 diff -u -r1.109 -r1.110 --- http_request.c1998/03/02 06:51:10 1.109 +++ http_request.c1998/03/06 08:26:18 1.110 @@ -499,58 +499,60 @@ void *per_dir_defaults = r-per_dir_config; void **url = (void **) sconf-sec_url-elts; int len, num_url = sconf-sec_url-nelts; -char *test_location = pstrdup(r-pool, r-uri); +char *test_location; +void *this_conf, *entry_config; +core_dir_config *entry_core; +char *entry_url; +int j; + +if (!num_url) { + return OK; +} /* * Collapse multiple slashes, if it's a path URL (we don't want to do * anything to Location http://... or such). */ +test_location = pstrdup(r-pool, r-uri); if (test_location[0] == '/') no2slash(test_location); /* Go through the location entries, and check for matches. */ -if (num_url) { -void *this_conf, *entry_config; -core_dir_config *entry_core; -char *entry_url; -int j; - -/* we apply the directive sections in some order; - * should really try them with the most general first. - */ -for (j = 0; j num_url; ++j) { - -entry_config = url[j]; - -entry_core = (core_dir_config *) -get_module_config(entry_config, core_module); -entry_url = entry_core-d; - -len = strlen(entry_url); - -this_conf = NULL; - -if (entry_core-r) { -if (!regexec(entry_core-r, test_location, 0, NULL, 0)) -this_conf = entry_config; -} -else if (entry_core-d_is_fnmatch) { -if (!fnmatch(entry_url, test_location, FNM_PATHNAME)) { -this_conf = entry_config; -} -} -else if (!strncmp(test_location, entry_url, len) - (entry_url[len - 1] == '/' || - test_location[len] == '/' || test_location[len] == '\0')) -this_conf = entry_config; - -if (this_conf) -per_dir_defaults = merge_per_dir_configs(r-pool, - per_dir_defaults, this_conf); -} -r-per_dir_config = per_dir_defaults; +/* we apply the directive sections in some order; + * should really try them with the most general first. + */ +for (j = 0; j num_url; ++j) { + + entry_config = url[j]; + + entry_core = (core_dir_config *) + get_module_config(entry_config, core_module); + entry_url = entry_core-d; + + len = strlen(entry_url); + + this_conf = NULL; + + if (entry_core-r) { + if (!regexec(entry_core-r, test_location, 0, NULL, 0)) + this_conf = entry_config; + } + else if (entry_core-d_is_fnmatch) { + if (!fnmatch(entry_url, test_location, FNM_PATHNAME)) { + this_conf = entry_config; + } + } + else if (!strncmp(test_location, entry_url, len) + (entry_url[len - 1] == '/' || + test_location[len] == '/' || test_location[len] == '\0')) + this_conf = entry_config; + + if (this_conf) + per_dir_defaults = merge_per_dir_configs(r-pool, + per_dir_defaults, this_conf); } +r-per_dir_config = per_dir_defaults; return OK; }