You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Adam Sussman <my...@vidya.com> on 1996/02/02 10:16:26 UTC

Re: the next release & updated patches


> Also, could someone please move my patches in for_Apache_misc (56 and 73a)
> into 1.0.2, assming that it's for 1.1b1. They patch cleanly onto 1.0.2,
> and I would like to see them in the next featured release. I would also
> like to reccomend patches 61a, 65, 66, 68, 70, 72, 77, and 84 (that's all
> but 71, which conficts with 56, and 17, 78, and 83, which don't patch onto
> 1.0.2 - if the authors of these patches could respin them, that'd be
> wonderful) be moved as well, as they all patch cleanly onto 1.0.2, work
> fine, and were put there so they would end up in the beta of 1.1. 
> 

I would like to second this (if my words have any weight :).  Enclosed
is an updated version of patch 78 taken against a clean 1.0.2.  I would
appreciate if someone would move it to the for_Apache_1.0.2 directory.

-adam

-- snip --
From: asussman@vidya.com (Adam Sussman)
Subject: Preserve HTTP Method accross an internal redirect.
Affects: http_request.c mod_cgi.c
ChangeLog: The current internal_redirect code always hard sets the new request
        to a GET method.  This is not always desireable.  This patch causes
        internal_redirect to preserve the original request method except in
        the case of a redirect from the CGI module.


diff -C3 src.old/http_request.c src/http_request.c
*** src.old/http_request.c	Fri Feb  2 00:39:13 1996
--- src/http_request.c	Fri Feb  2 00:40:30 1996
***************
*** 658,671 ****
      new->prev = r;
      r->next = new;
      
-     /* We are redirecting.  Treat the internally generated transaction
-      * as a GET, since there is not a chance of its getting POST-style
-      * arguments.   
-      */
-     new->method = "GET";
-     new->method_number = M_GET;
- 
      /* Inherit the rest of the protocol info... */
      
      new->status = r->status;
      new->assbackwards = r->assbackwards;
--- 658,667 ----
      new->prev = r;
      r->next = new;
      
      /* Inherit the rest of the protocol info... */
+ 
+     new->method = pstrdup(r->pool, r->method);
+     new->method_number = r->method_number;
      
      new->status = r->status;
      new->assbackwards = r->assbackwards;
Only in src: log
diff -C3 src.old/mod_cgi.c src/mod_cgi.c
*** src.old/mod_cgi.c	Fri Feb  2 00:39:13 1996
--- src/mod_cgi.c	Fri Feb  2 00:44:01 1996
***************
*** 314,320 ****
  	    while (fgets(argsbuffer, HUGE_STRING_LEN-1, script_in) != NULL)
  	        continue;
  	    kill_timeout (r);
! 	    
  	    internal_redirect (location, r);
  	    return OK;
          }
--- 314,327 ----
  	    while (fgets(argsbuffer, HUGE_STRING_LEN-1, script_in) != NULL)
  	        continue;
  	    kill_timeout (r);
! 
! 
! 	   /* This redirect needs to be a GET no matter what the original
! 	    * method was.
! 	    */
! 	    r->method = pstrdup(r->pool, "GET");
! 	    r->method_number = M_GET;
! 
  	    internal_redirect (location, r);
  	    return OK;
          }