dgaudet     97/06/30 18:37:12

  Modified:    src       Tag: APACHE_1_2_X  CHANGES http_protocol.c
                        http_request.c httpd.h
  Log:
  Added begun_read_body to request_rec so that subreqs and internal redirects
  won't try to read the request body twice.
  
  Submitted by: Roy Fielding
  Reviewed by:  Alexei Kosut, Dean Gaudet
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.286.2.23 +5 -1      apache/src/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /export/home/cvs/apache/src/CHANGES,v
  retrieving revision 1.286.2.22
  retrieving revision 1.286.2.23
  diff -C3 -r1.286.2.22 -r1.286.2.23
  *** CHANGES   1997/06/30 00:02:00     1.286.2.22
  --- CHANGES   1997/07/01 01:37:07     1.286.2.23
  ***************
  *** 29,35 ****
         lockfile in any location.  It previously defaulted to /usr/tmp/htlock.
         [Somehow it took four of us: Randy Terbush, Jim Jagielski, Dean Gaudet,
         Marc Slemko]
  !   
      *) Add a placeholder in modules/Makefile to avoid errors with certain
         makes. [Marc Slemko]
    
  --- 29,39 ----
         lockfile in any location.  It previously defaulted to /usr/tmp/htlock.
         [Somehow it took four of us: Randy Terbush, Jim Jagielski, Dean Gaudet,
         Marc Slemko]
  ! 
  !   *) Request processing now retains state of whether or not the request
  !      body has been read, so that internal redirects and subrequests will
  !      not try to read it twice (and block). [Roy Fielding]
  ! 
      *) Add a placeholder in modules/Makefile to avoid errors with certain
         makes. [Marc Slemko]
    
  
  
  
  1.126.2.1 +4 -1      apache/src/http_protocol.c
  
  Index: http_protocol.c
  ===================================================================
  RCS file: /export/home/cvs/apache/src/http_protocol.c,v
  retrieving revision 1.126
  retrieving revision 1.126.2.1
  diff -C3 -r1.126 -r1.126.2.1
  *** http_protocol.c   1997/05/29 03:44:31     1.126
  --- http_protocol.c   1997/07/01 01:37:08     1.126.2.1
  ***************
  *** 868,873 ****
  --- 868,874 ----
        
        rnew->read_length = r->read_length;
        rnew->read_body   = REQUEST_NO_BODY;
  +     rnew->begun_read_body = r->begun_read_body;
        
        rnew->main = (request_rec *)r;
    }
  ***************
  *** 1345,1351 ****
    
    int should_client_block (request_rec *r)
    {
  !     if (is_HTTP_ERROR(r->status))
            return 0;
    
        if (!r->read_chunked && (r->remaining <= 0))
  --- 1346,1352 ----
    
    int should_client_block (request_rec *r)
    {
  !     if (r->begun_read_body || is_HTTP_ERROR(r->status))
            return 0;
    
        if (!r->read_chunked && (r->remaining <= 0))
  ***************
  *** 1396,1401 ****
  --- 1397,1404 ----
        int c;
        long len_read, len_to_read;
        long chunk_start = 0;
  + 
  +     r->begun_read_body = 1;
    
        if (!r->read_chunked) {                 /* Content-length read */
            len_to_read = (r->remaining > bufsiz) ? bufsiz : r->remaining;
  
  
  
  1.50.2.2  +2 -0      apache/src/http_request.c
  
  Index: http_request.c
  ===================================================================
  RCS file: /export/home/cvs/apache/src/http_request.c,v
  retrieving revision 1.50.2.1
  retrieving revision 1.50.2.2
  diff -C3 -r1.50.2.1 -r1.50.2.2
  *** http_request.c    1997/06/27 02:21:21     1.50.2.1
  --- http_request.c    1997/07/01 01:37:09     1.50.2.2
  ***************
  *** 1095,1100 ****
  --- 1095,1102 ----
                                  */
        new->no_local_copy = r->no_local_copy;
    
  +     new->begun_read_body = r->begun_read_body;  /* We can only read it once 
*/
  + 
        ap_snprintf (t, sizeof(t), "%d", r->status);
        table_set (new->subprocess_env, "REDIRECT_STATUS", pstrdup (r->pool, 
t));
    
  
  
  
  1.111.2.4 +1 -0      apache/src/httpd.h
  
  Index: httpd.h
  ===================================================================
  RCS file: /export/home/cvs/apache/src/httpd.h,v
  retrieving revision 1.111.2.3
  retrieving revision 1.111.2.4
  diff -C3 -r1.111.2.3 -r1.111.2.4
  *** httpd.h   1997/06/29 18:51:23     1.111.2.3
  --- httpd.h   1997/07/01 01:37:09     1.111.2.4
  ***************
  *** 472,477 ****
  --- 472,478 ----
      long read_length;         /* bytes that have been read */
      int read_body;            /* how the request body should be read */
      int read_chunked;         /* reading chunked transfer-coding */
  +   int begun_read_body;      /* false (0) until first get_client_block */
    
      /* MIME header environments, in and out.  Also, an array containing
       * environment variables to be passed to subprocesses, so people can
  
  
  

Reply via email to