On Thu, 21 Apr 2005, Paul Querna wrote:
> I agree that not having a clear rule has led to some possible leaks in
> many filters. If some people think there has always been a 'rule', I
> contend that it has never been documented.
FWIW, the documentation says:
--------------------------------------------------------------------
/**
* Pass the current bucket brigade down to the next filter on the filter
* stack. The filter returns an apr_status_t value. If the bottom-most
* filter doesn't write to the network, then ::AP_NOBODY_WROTE is returned.
* The caller relinquishes ownership of the brigade.
* @param filter The next filter in the chain
* @param bucket The current bucket brigade
*/
AP_DECLARE(apr_status_t) ap_pass_brigade(ap_filter_t *filter,
apr_bucket_brigade *bucket);
--------------------------------------------------------------------
"The caller relinquishes ownership of the brigade."
This obviously differs from what some of our own filters are doing -- and
from my memory of past history. It makes sense that it should be this
way, though I think at some point in the past we just guaranteed that the
core_output_filter always emptied the brigades it was passed so it
wouldn't have mattered until other filters that didn't behave that way
started getting inserted in front of c_o_f.
I'll keep digging.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]