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


Reply via email to