On 9/23/06, Henry Jen <[EMAIL PROTECTED]> wrote:
Hi,
apr_brigade_length with readall set to 1 will try to read from a bucket
with length -1 to determine the value.
Currently, if apr_bucket_read with the bucket of length -1 returns other
than APR_SUCCESS, the length returned is undefined.
In case of a socket bucket with a nonblocking socket, the return status
could be EAGAIN and the length is still useful to determine value
available at the moment. A use case, for example, is waiting for a
certain amount of data to be available.
I would propose to return the value up-to-date is better than undefined.
The application can decide whether the value is meaningful with the
returned status. Does this make sense?
Attached is a simple path specifying the length.
Is total going to be the correct value in that case? I know in
apr_file_read you can get stuff in *len even if an error has occurred,
can that occur with apr_bucket_read? If so, it seems like you'd want
*length = total + *len, or something like that.
-garrett