httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From r..@covalent.net
Subject Re: cvs commit: apache-2.0/src/main http_core.c http_protocol.c
Date Mon, 06 Nov 2000 20:37:36 GMT

> >   --- ap_buckets.c	2000/10/23 19:21:47	1.28
> >   +++ ap_buckets.c	2000/11/04 01:30:26	1.29
> >   @@ -130,7 +130,7 @@
> >        AP_BRIGADE_FOREACH(e, b) {
> >    	if (nvec-- == 0)
> >                break;
> >   -	ap_bucket_read(e, (const char **)&vec->iov_base, &iov_len, 0);
> >   +	ap_bucket_read(e, (const char **)&vec->iov_base, &iov_len, AP_NONBLOCK_READ);
> >            vec->iov_len = iov_len; /* set indirectly in case size differs */
> >    	++vec;
> >        }
> 
> Perhaps this function (ap_brigade_to_iovec()) needs the ap_read_type
> parameter?  Also, we can't keep going once ap_bucket_read() returns
> APR_EAGAIN... if we do, we get data out of order...

This is broken, but ap_brigade_to_iovec shouldn't have an ap_read_type
parameter.  Right now, almost all of our input filters are broken because
they aren't paying any attention to the mode parameter for
blocking/non-blocking.  This all needs to be cleaned
up.  Ap_brigade_to_iovec should always act the same IMHO, it should always
read non-blocking, and return if it gets an error.  The calling function
should then just handle things correctly.

Ryan

_______________________________________________________________________________
Ryan Bloom                        	rbb@apache.org
406 29th St.
San Francisco, CA 94131
-------------------------------------------------------------------------------


Mime
View raw message