You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Brian Pane <br...@apache.org> on 2002/08/25 05:06:59 UTC

[PATCH] remove bucket setaside code from content-length filter

This is an updated version of the C-L filter patch I posted
about a week ago.  Since then, there's been some discussion
of moving the r->bytes_sent computation to the core output
filter.  I started to implement that change, but the core
output filter was becoming far too complicated.  So for now,
I'm leaving the r->bytes sent computation in the C-L filter.

Notes on this patch:
  * It's basically the same as the previous C-L filter
    patch that I posted, except that the filter now tries
    a nonblocking read on each pipe bucket before flushing
    the preceeding buckets (the nonblocking/blocking logic
    is the same as what's in the CVS head version right now).

  * With the patch applied, one of the chunked output tests
    in t/TEST reports an error because the httpd no longer
    includes a content-length in a response that used to have
    one.  (This happens because the first brigade passed to
    the C-L filter doesn't contain an EOS, so the patched filter
    code sends the brigade on to the next filter rather than
    buffering it.)  I think the error is incorrect, though,
    because the server isn't actually required to send a C-L.

I'll wait a few days before committing this.  For anyone who
wants to scrutinize the patch in the meantime, I've attached
it both the diff and a full copy of the new C-L filter function.
(The latter is easier to read.)

Brian