> 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. 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. The sub-request's EOS is stripped off by the SUB_REQ_FILTER, and is only used to signify the end of the sub-request. Ryan