cvs commit: apache-1.3/src/main http_request.c

1999-11-09 Thread ben
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

1999-05-12 Thread dgaudet
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

1999-04-21 Thread dgaudet
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

1999-01-09 Thread martin
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

1998-10-20 Thread coar
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

1998-10-01 Thread coar
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

1998-03-26 Thread martin
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

1998-03-06 Thread dgaudet
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;
   }