> > On Fri, Jan 04, 2002 at 11:39:27PM -0800, Brian Pane wrote:
> > > The one-byte reads are for the CGI's response header.  The problem is that
> > > mod_cgi hands off the pipe (non-buffered) to ap_scan_script_header_err(),
> > > which does single-byte reads until it finds the end of the header.  After
> > > that, mod_cgi finally builds a pipe-bucket, which is buffered, so the
> > > reading
> > > of the content happens in much larger chunks.
> > >
> > > The easiest solution I can think of is to change ap_scan_script_header_err()
> > > to accept a brigade rather than an apr_file_t, so that we can take advantage
> > > of the pipe bucket's buffering when reading the headers.
> >
> > I've just committed a note about this in STATUS. I think converting
> > it to take a brigade is the way to go.
> >
> > -aaron
> >
> 
> ap_scan_script_header_err calls apr_file_gets(buf, len, (apr_file_t *) f) where len 
>= 8191 bytes.
> 
> apr_file_gets reads one byte at a time, even if it has a large buffer available to 
>it.  What's up
> with that? Looks like apr_file_gets is wonky.
> 
> Bill
> 

Ahh... I grok it now.  apr_file_gets is behaving like gets, as it should.  Brigades it 
is...

Bill

Reply via email to