Am Freitag, den 25.08.2006, 23:22 +0200 schrieb Ruediger Pluem:
> c->aborted is set to 1 in this case. Just check for it once you return from
> ap_pass_brigade.
Thx. For the convienience of those who google:
rv = ap_pass_brigade(f->next, sctx->bb) ;
if (rv != APR_SUCCESS
|| f->c->aborted) {
return rv;
}
is what I do for now.
I just found the header (in 2.2.2) for ap_pass_brigade 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.
IMHO it is a bug if software does not behave as documented. How do we
fix this? Should ap_pass_brigade check c->aborted an adjust the filters
return accordingly? This is much preferable to having every filter do
what I do now.
Sincerely,
Joachim