You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Dean Gaudet <dg...@arctic.org> on 1997/07/01 00:11:56 UTC

Re: [STATUS] 1.2.1, final(?) snapshot available

I cave in too easily, I wanted to stop changes on 1.2.1 yesterday.  But
I'm happy including this and Marc's PR#333 patch.  They seem inocuous
enough ;)  I suppose this means I shouldn't roll 1.2.1 final today, and
should hold the announcement off until wednesday.

snap3 coming up. 

Dean

On Mon, 30 Jun 1997, Roy T. Fielding wrote:

> I was meaning to do this for 1.2.1, but couldn't find the time til now.
> One of the problems that cropped up around 1.2b10 is that we need a way for
> the server to know that the current request's message body has been
> read, in order to avoid having later subrequests or internal redirects
> attempt to read it again (and block).  I didn't do it then because I
> did not want to change anything that required a new magic module number.
> Since the API has already changed for 1.2.1, this should be included now.
> 
> ....Roy
> 
> 
> Index: httpd.h
> ===================================================================
> RCS file: /export/home/cvs/apache/src/httpd.h,v
> retrieving revision 1.119
> diff -c -r1.119 httpd.h
> *** httpd.h	1997/06/29 19:19:36	1.119
> --- httpd.h	1997/06/30 21:20:27
> ***************
> *** 487,492 ****
> --- 487,493 ----
>     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 have_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
> Index: http_protocol.c
> ===================================================================
> RCS file: /export/home/cvs/apache/src/http_protocol.c,v
> retrieving revision 1.129
> diff -c -r1.129 http_protocol.c
> *** http_protocol.c	1997/06/29 17:56:47	1.129
> --- http_protocol.c	1997/06/30 21:20:28
> ***************
> *** 1348,1354 ****
>   
>   int should_client_block (request_rec *r)
>   {
> !     if (is_HTTP_ERROR(r->status))
>           return 0;
>   
>       if (!r->read_chunked && (r->remaining <= 0))
> --- 1348,1354 ----
>   
>   int should_client_block (request_rec *r)
>   {
> !     if (r->have_read_body || is_HTTP_ERROR(r->status))
>           return 0;
>   
>       if (!r->read_chunked && (r->remaining <= 0))
> ***************
> *** 1399,1404 ****
> --- 1399,1406 ----
>       int c;
>       long len_read, len_to_read;
>       long chunk_start = 0;
> + 
> +     r->have_read_body = 1;
>   
>       if (!r->read_chunked) {                 /* Content-length read */
>           len_to_read = (r->remaining > bufsiz) ? bufsiz : r->remaining;
> 


Re: [STATUS] 1.2.1, final(?) snapshot available

Posted by Marc Slemko <ma...@worldgate.com>.
On Mon, 30 Jun 1997, Dean Gaudet wrote:

> I cave in too easily, I wanted to stop changes on 1.2.1 yesterday.  But
> I'm happy including this and Marc's PR#333 patch.  They seem inocuous
> enough ;)  I suppose this means I shouldn't roll 1.2.1 final today, and
> should hold the announcement off until wednesday.

Yes, and give a day or two after rolling what is hopefully 1.2.1 before
putting it on the website or announcing it... want to verify that it
works.

> 
> snap3 coming up. 
> 
> Dean
> 
> On Mon, 30 Jun 1997, Roy T. Fielding wrote:
> 
> > I was meaning to do this for 1.2.1, but couldn't find the time til now.
> > One of the problems that cropped up around 1.2b10 is that we need a way for
> > the server to know that the current request's message body has been
> > read, in order to avoid having later subrequests or internal redirects
> > attempt to read it again (and block).  I didn't do it then because I
> > did not want to change anything that required a new magic module number.
> > Since the API has already changed for 1.2.1, this should be included now.
> > 
> > ....Roy
> > 
> > 
> > Index: httpd.h
> > ===================================================================
> > RCS file: /export/home/cvs/apache/src/httpd.h,v
> > retrieving revision 1.119
> > diff -c -r1.119 httpd.h
> > *** httpd.h	1997/06/29 19:19:36	1.119
> > --- httpd.h	1997/06/30 21:20:27
> > ***************
> > *** 487,492 ****
> > --- 487,493 ----
> >     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 have_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
> > Index: http_protocol.c
> > ===================================================================
> > RCS file: /export/home/cvs/apache/src/http_protocol.c,v
> > retrieving revision 1.129
> > diff -c -r1.129 http_protocol.c
> > *** http_protocol.c	1997/06/29 17:56:47	1.129
> > --- http_protocol.c	1997/06/30 21:20:28
> > ***************
> > *** 1348,1354 ****
> >   
> >   int should_client_block (request_rec *r)
> >   {
> > !     if (is_HTTP_ERROR(r->status))
> >           return 0;
> >   
> >       if (!r->read_chunked && (r->remaining <= 0))
> > --- 1348,1354 ----
> >   
> >   int should_client_block (request_rec *r)
> >   {
> > !     if (r->have_read_body || is_HTTP_ERROR(r->status))
> >           return 0;
> >   
> >       if (!r->read_chunked && (r->remaining <= 0))
> > ***************
> > *** 1399,1404 ****
> > --- 1399,1406 ----
> >       int c;
> >       long len_read, len_to_read;
> >       long chunk_start = 0;
> > + 
> > +     r->have_read_body = 1;
> >   
> >       if (!r->read_chunked) {                 /* Content-length read */
> >           len_to_read = (r->remaining > bufsiz) ? bufsiz : r->remaining;
> > 
> 


Re: [STATUS] 1.2.1, final(?) snapshot available

Posted by Alexei Kosut <ak...@organic.com>.
On Mon, 30 Jun 1997, Dean Gaudet wrote:

> I cave in too easily, I wanted to stop changes on 1.2.1 yesterday.  But
> I'm happy including this and Marc's PR#333 patch.  They seem inocuous
> enough ;)  I suppose this means I shouldn't roll 1.2.1 final today, and
> should hold the announcement off until wednesday.

Sure. +1 on Roy's patch *if* there is a comment added indicating that
have_read_body only means that the incoming body has been begun to be
read; it does not mean that the entire body has been read. Otherwise,
someone a few months from now might inadvertantly assume that just because
have_read_body is set, there is no incoming body left. This could be
dangerous, especially with persistent connections (and is the reason that
we don't keep non-GET requests alive if they fail somehow).

-- Alexei Kosut <ak...@organic.com>