that sucks IMO, but it does sounds like how the code works today. We do socket read() syscalls during the MODE_EATCRLF calls that are almost always unproductive. They could be optimized away. I don't believe 1.3 does these extra read()s.
1.3 does it in reverse: it discards the extra CRLFs at the beginning of the request lines. Hmmmmm. Looking at the code, httpd-2.x does the same thing in read_request_line. So, we could probably toss the EATCRLF mode entirely without any ill effects. It's kind of pointless...
Connection-level filters like mod_ssl would have to be rewritten to be async.
or to simply report whether they held on to any data.
This is how EAGAIN return values would work. But, again, I don't think we could add it easily without changing a lot of filter semantics. -- justin
