"Ryan Bloom" <[EMAIL PROTECTED]> writes: > > From: [EMAIL PROTECTED] [mailto:trawick@rdu88-251- > > > > Initially I would think that a filter should see at most one EOS. > > mod_ext_filter doesn't have logic to ignore subsequent ones, resulting > > in a superfluous error message from a failed syscall when it tries to > > re-do some cleanup when it hits a second EOS. > > > > In this case, the subrequest is handled by default_handler which > > passes down a FILE bucket and an EOS bucket. After that has > > completed, ap_finalize_sub_req_protocol() passes down another EOS > > bucket. Why does ap_finalize_sub_req_protocol() pass down an EOS? > > Isn't the handler responsible for that? Is this to clean up in case > > the handler encountered an error and failed to pass down an EOS? > > Output filters can only support and expect a single EOS bucket. Input > filters, however, seem to be moving to a multi-EOS model.
okay so far > Ap_finalize_sub_req_protocol sends down an EOS bucket just like > ap_finalize_request does. That means that it is only sent if the > handler didn't send it. I suspect you're talking about this line of code which doesn't exist in CVS: Index: server/protocol.c =================================================================== RCS file: /home/cvs/httpd-2.0/server/protocol.c,v retrieving revision 1.105 diff -u -r1.105 protocol.c --- server/protocol.c 7 Jun 2002 22:31:34 -0000 1.105 +++ server/protocol.c 10 Jun 2002 18:33:54 -0000 @@ -1033,7 +1033,10 @@ void ap_finalize_sub_req_protocol(request_rec *sub) { - end_output_stream(sub); + /* tell the filter chain there is no more content coming */ + if (!sub->eos_sent) { + end_output_stream(sub); + } } /* finalize_request_protocol is called at completion of sending the Is that what you expected was there? (the PR 9644 scenario is fine with this patch; I'm poking around now to see if we used to have this check and removed it for some reason) -- Jeff Trawick | [EMAIL PROTECTED] Born in Roswell... married an alien...