Index: server/protocol.c =================================================================== RCS file: /home/cvs/httpd-2.0/server/protocol.c,v retrieving revision 1.127 diff -u -r1.127 protocol.c --- server/protocol.c 3 Feb 2003 17:53:19 -0000 1.127 +++ server/protocol.c 24 Feb 2003 17:03:21 -0000 @@ -923,117 +924,16 @@ ... + r->connection->r = r; + bb = apr_brigade_create(r->pool, r->connection->bucket_alloc); + rv = ap_get_brigade(r->input_filters, bb, AP_MODE_READBYTES, + APR_BLOCK_READ, HUGE_STRING_LEN); + apr_brigade_destroy(bb);
Um, what? I think this is how you are trying to get around when to call the input filter. This is extremely bogus. You can't read data and then throw it away. And, no, setaside isn't the answer (sorry, OtherBill).
I have to responds to this (even though I am up to my ears in other work)... If bb contains -any- bytes after after the call to ap_get_brigade(), then there is something wrong (that is fixable) in the filter stack. As I envision how this should operate, bb should be empty when we call apr_brigade_destroy. It it is not, then something else is broken.
And you are right that ap_brigade_getline() is ignoring the possibility of getting an EOS bucket. That's a bug in ap_brigade_getline() that can easily be fixed. I also chose to implement ap_brigade_getline() in the most direct fashion possible (rather than use apr_brigade_splitline, et. al.) because it is much more efficient the way I did it. Yes, there is some code duplication, but it is minor.
Bill
