This patch entirely blows up internal redirection and subrequests,
I would expect.

----- Original Message ----- 
From: <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, September 03, 2001 8:38 PM
Subject: cvs commit: httpd-2.0/server util_script.c


> rbb         01/09/03 18:38:01
> 
>   Modified:    .        CHANGES
>                server   util_script.c
>   Log:
>   Back out the 1.45 change to util_script.c.  This change made
>   us set the environment variable REQUEST_URI to the redirected
>   URI, instead of the originally requested URI.
>   
>   PR: 7580
>   Submitted by: Taketo Kabe <[EMAIL PROTECTED]>
>   
>   Revision  Changes    Path
>   1.355     +5 -0      httpd-2.0/CHANGES
>   
>   Index: CHANGES
>   ===================================================================
>   RCS file: /home/cvs/httpd-2.0/CHANGES,v
>   retrieving revision 1.354
>   retrieving revision 1.355
>   diff -u -r1.354 -r1.355
>   --- CHANGES 2001/09/02 08:43:23 1.354
>   +++ CHANGES 2001/09/04 01:38:00 1.355
>   @@ -1,5 +1,10 @@
>    Changes with Apache 2.0.26-dev
>    
>   +  *) Back out the 1.45 change to util_script.c.  This change made
>   +     us set the environment variable REQUEST_URI to the redirected
>   +     URI, instead of the originally requested URI.
>   +     [Taketo Kabe <[EMAIL PROTECTED]>]
>   +
>      *) Make mod_include do lazy evaluation of potentially expensive to
>         compute variables.  [Brian Pane <[EMAIL PROTECTED]>]
>    
>   
>   
>   
>   1.62      +29 -1     httpd-2.0/server/util_script.c
>   
>   Index: util_script.c
>   ===================================================================
>   RCS file: /home/cvs/httpd-2.0/server/util_script.c,v
>   retrieving revision 1.61
>   retrieving revision 1.62
>   diff -u -r1.61 -r1.62
>   --- util_script.c 2001/08/23 21:16:05 1.61
>   +++ util_script.c 2001/09/04 01:38:01 1.62
>   @@ -313,6 +313,34 @@
>        return lu;
>    }
>    
>   +/* Obtain the Request-URI from the original request-line, returning
>   + * a new string from the request pool containing the URI or "".
>   + */
>   +static char *original_uri(request_rec *r)
>   +{
>   +    char *first, *last;
>   +
>   +    if (r->the_request == NULL) {
>   + return (char *) apr_pcalloc(r->pool, 1);
>   +    }
>   +
>   +    first = r->the_request; /* use the request-line */
>   +
>   +    while (*first && !apr_isspace(*first)) {
>   + ++first; /* skip over the method */
>   +    }
>   +    while (apr_isspace(*first)) {
>   + ++first; /*   and the space(s)   */
>   +    }
>   +
>   +    last = first;
>   +    while (*last && !apr_isspace(*last)) {
>   + ++last; /* end at next whitespace */
>   +    }
>   +
>   +    return apr_pstrndup(r->pool, first, last - first);
>   +}
>   +
>    AP_DECLARE(void) ap_add_cgi_vars(request_rec *r)
>    {
>        apr_table_t *e = r->subprocess_env;
>   @@ -321,7 +349,7 @@
>        apr_table_setn(e, "SERVER_PROTOCOL", r->protocol);
>        apr_table_setn(e, "REQUEST_METHOD", r->method);
>        apr_table_setn(e, "QUERY_STRING", r->args ? r->args : "");
>   -    apr_table_setn(e, "REQUEST_URI", r->unparsed_uri);
>   +    apr_table_setn(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
>   
>   
>   
> 

Reply via email to