dgaudet     98/01/21 14:48:14

  Modified:    src      CHANGES
               src/main http_request.c
  Log:
  We need to eat the request body, if any, in die() in order to continue a
  keep-alive session.
  
  PR:           1399
  Submitted by: Roy Fielding
  Reviewed by:  Martin Kraemer, Dean Gaudet
  
  Revision  Changes    Path
  1.585     +5 -0      apachen/src/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /export/home/cvs/apachen/src/CHANGES,v
  retrieving revision 1.584
  retrieving revision 1.585
  diff -u -r1.584 -r1.585
  --- CHANGES   1998/01/21 22:31:44     1.584
  +++ CHANGES   1998/01/21 22:48:10     1.585
  @@ -1,5 +1,10 @@
   Changes with Apache 1.3b4
   
  +  *) When die() happens we need to eat any request body if one exists.
  +     Otherwise we can't continue with a keepalive session.  This shows up
  +     as a POST problem with MSIE 4.0, typically against pages which are
  +     authenticated.  [Roy Fielding] PR#1399
  +
     *) If you define SECURITY_HOLE_PASS_AUTHORIZATION then the Authorization
        header will be passed to CGIs.  This is generally a security hole, so
        it's not a default.  [Marc Slemko] PR#549
  
  
  
  1.100     +11 -0     apachen/src/main/http_request.c
  
  Index: http_request.c
  ===================================================================
  RCS file: /export/home/cvs/apachen/src/main/http_request.c,v
  retrieving revision 1.99
  retrieving revision 1.100
  diff -u -r1.99 -r1.100
  --- http_request.c    1998/01/11 20:55:18     1.99
  +++ http_request.c    1998/01/21 22:48:13     1.100
  @@ -878,6 +878,17 @@
       }
   
       /*
  +     * If we want to keep the connection, be sure that the request body
  +     * (if any) has been read.
  +     */
  +    if ((r->status != HTTP_NOT_MODIFIED) && (r->status != HTTP_NO_CONTENT)
  +        && !status_drops_connection(r->status)
  +        && r->connection && (r->connection->keepalive != -1)) {
  +
  +        (void) discard_request_body(r);
  +    }
  +
  +    /*
        * Two types of custom redirects --- plain text, and URLs. Plain text has
        * a leading '"', so the URL code, here, is triggered on its absence
        */
  
  
  

Reply via email to