Am Dienstag, den 02.01.2007, 13:29 -0800 schrieb Drew Bertola:
> >   for ( e = APR_BRIGADE_FIRST(bb) ;
> >         e != APR_BRIGADE_SENTINEL(bb) ;
> >         e = APR_BUCKET_NEXT(e) ) {


> - create context if it doesn't already exist.
> - loop through buckets (from FIRST to SENTINEL) in brigade passed to
> filter appending each bucket to my context's brigade.

The moment you append e the value of APR_BUCKET_NEXT(e) changes to your
context brigades sentinel.

> - pass my brigade to next filter.
> 
> So, shouldn't this work? ...

> - do I need to look out for APR_BUCKET_IS_EOS or APR_BUCKET_IS_FLUSH or
> are they implicit before APR_BRIGADE_IS_SENTINEL?

Yes and no. You can have multiple brigades and only the last one holds
_the_ EOS bucket.

> - do I need to use ap_pass_brigade()? I've used it here before returning.

That depends, but usually you will use it. ap_pass_brigade is misnomed.
It passes the buckets held by the parameter brigade to the next filters
brigade. Alternatively you probably could append to the next filters
brigade.

See also
http://www.heute-morgen.de/modules/doc/well_behaved_filters.html

Sincerely,
Joachim


Reply via email to