> > > + if (APR_BUCKET_IS_EOS(bucket)) {
> > > + seen_eos = 1;
> > > + break;
> > > + }
> > > +
> > > + /* Ahem, what to do? */
> > > + if (APR_BUCKET_IS_METADATA(bucket)) {
> > > + continue;
> > > + }
> >
> > No need to test for this. You'll just get zero-length buckets. If an
> > important metadata bucket *does* get generated in the future, then we'd want
> > to be explicitly testing for and handling it (like what is being done for
> > the EOS bucket). Until then, we don't have to worry about them.
>
> Um, I think the approach has been that you can't read from
> metadata buckets. That they may give you data back or they may
> not, but they certainly shouldn't be handled if you don't know
> what to do with them. This comes out of what little I've seen
> of the conversation with Cliff and Ryan. I may have it wrong,
> but I think someone said at some point that metadata may indeed
> respond to bucket_read with data, but that data shouldn't be
> construed as part of the input stream. I'm thoroughly confused
> at this point about what metadata buckets are.
No, currently o metadata bucket responds to a read with data, and the way
the metadata flag was implemented, it isn't possible for a metadata bucket
to have data.
I don't know the code well enough to know if this is implemented
correctly, but the rule follows:
All filters must make sure that all metadata buckets that they do not
handle are sent to the next filter. If a previous filter created an error
bucket, then that bucket must be sent to the next level.
Ryan