httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Roy Fielding <field...@hyperreal.com>
Subject cvs commit: apache/src CHANGES util_script.c
Date Thu, 08 May 1997 07:32:34 GMT
fielding    97/05/08 00:32:34

  Modified:    src       CHANGES util_script.c
  Log:
  The method for determining PATH_INFO has been restored to the pre-1.2b
  (and NCSA httpd) implementation wherein it was the extra path info beyond
  the CGI script filename.  The environment variable FILEPATH_INFO has
  been removed, and instead we supply the original REQUEST_URI to any
  script that wants to be Apache-specific and needs the real URI path.
  This solves a problem with existing scripts that use extra path info
  in the ScriptAlias directive to pass options to the CGI script.
  
  Reviewed by: Jim Jagielski, Paul Sutton
  
  Revision  Changes    Path
  1.266     +10 -0     apache/src/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /export/home/cvs/apache/src/CHANGES,v
  retrieving revision 1.265
  retrieving revision 1.266
  diff -C3 -r1.265 -r1.266
  *** CHANGES	1997/05/04 20:28:13	1.265
  --- CHANGES	1997/05/08 07:32:32	1.266
  ***************
  *** 1,5 ****
  --- 1,14 ----
    Changes with Apache 1.2
    
  +   *) The method for determining PATH_INFO has been restored to the pre-1.2b
  +      (and NCSA httpd) definition wherein it was the extra path info beyond
  +      the CGI script filename.  The environment variable FILEPATH_INFO has
  +      been removed, and instead we supply the original REQUEST_URI to any
  +      script that wants to be Apache-specific and needs the real URI path.
  +      This solves a problem with existing scripts that use extra path info
  +      in the ScriptAlias directive to pass options to the CGI script.
  +      [Roy Fielding]
  + 
      *) The _default_ change in 1.2b10 will change the behaviour on configs
         that use multiple Listen statements for listening on multiple ports.
         But that change is necessary to make _default_ consistent with other
  ***************
  *** 705,710 ****
  --- 714,720 ----
      *) Add FILEPATH_INFO variable to CGI environment, which is equal to
         PATH_INFO from previous versions of Apache (in certain situations,
         Apache 1.2's PATH_INFO will be different than 1.1's). [Alexei Kosut]
  +      [later removed in 1.2b11]
    
      *) Add rwrite() function to API to allow for sending strings of
         arbitrary length. [Doug MacEachern]
  
  
  
  1.57      +18 -13    apache/src/util_script.c
  
  Index: util_script.c
  ===================================================================
  RCS file: /export/home/cvs/apache/src/util_script.c,v
  retrieving revision 1.56
  retrieving revision 1.57
  diff -C3 -r1.56 -r1.57
  *** util_script.c	1997/04/29 04:45:52	1.56
  --- util_script.c	1997/05/08 07:32:32	1.57
  ***************
  *** 238,243 ****
  --- 238,257 ----
        return lu;
    }
    
  + static char *original_uri(request_rec *r)
  + {
  +     char *last;
  +     char *first = r->the_request;
  + 
  +     while (*first && !isspace(*first)) ++first;
  +     while (isspace(*first)) ++first;
  + 
  +     last = first;
  +     while (*last && !isspace(*last)) ++last;
  +     
  +     return pstrndup(r->pool, first, last - first);
  + }
  + 
    void add_cgi_vars(request_rec *r)
    {
        table *e = r->subprocess_env;
  ***************
  *** 246,252 ****
        table_set (e, "SERVER_PROTOCOL", r->protocol);
        table_set (e, "REQUEST_METHOD", r->method);
        table_set (e, "QUERY_STRING", r->args ? r->args : "");
  !     
        /* Note that the code below special-cases scripts run from includes,
         * because it "knows" that the sub_request has been hacked to have the
         * args and path_info of the original request, and not any that may have
  --- 260,267 ----
        table_set (e, "SERVER_PROTOCOL", r->protocol);
        table_set (e, "REQUEST_METHOD", r->method);
        table_set (e, "QUERY_STRING", r->args ? r->args : "");
  !     table_set (e, "REQUEST_URI", original_uri(r));
  ! 
        /* Note that the code below special-cases scripts run from includes,
         * because it "knows" that the sub_request has been hacked to have the
         * args and path_info of the original request, and not any that may have
  ***************
  *** 264,283 ****
    
    	table_set (e, "SCRIPT_NAME", pstrndup(r->pool, r->uri,
    					      path_info_start));
  ! 	table_set (e, "PATH_INFO", r->uri + path_info_start);
        }
    	
  -     /* Some CGI apps need the old-style PATH_INFO (taken from the
  -      * filename, not the URL), so we provide it in a different env
  -      * variable. CGI scripts can use something like (in Perl)
  -      * $path_info = $ENV{'FILEPATH_INFO'} || $ENV{'PATH_INFO'};
  -      * to get the right information with both old and new
  -      * versions of Apache (and other servers).
  -      */
  - 
  -     if (r->path_info && *r->path_info)
  - 	table_set (e, "FILEPATH_INFO", r->path_info);
  - 
        if (r->path_info && r->path_info[0]) {
    	/*
     	 * To get PATH_TRANSLATED, treat PATH_INFO as a URI path.
  --- 279,288 ----
    
    	table_set (e, "SCRIPT_NAME", pstrndup(r->pool, r->uri,
    					      path_info_start));
  ! 
  ! 	table_set (e, "PATH_INFO", r->path_info);
        }
    	
        if (r->path_info && r->path_info[0]) {
    	/*
     	 * To get PATH_TRANSLATED, treat PATH_INFO as a URI path.
  
  
  

Mime
View raw message