httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Date Thu, 24 Aug 2000 14:26:22 GMT

> > Grrrr....  No this doesn't make sense.  IOLs are just watered down
> > buckets.
> IOLs have an interface symantically similar to sockets with the ability
> to read from or write to any data sink/store. The support setting the
> read/write interface blocking or non-blocking.  Very simple
> conceptually. Now, we have to create a 'bucket' with a funky looking
> interface for each data source and data sink. You pass in a variable to
> tell the i/o hidden in the bucket whether it needs to block or not.
> It's crufty at best.  Buckets and filters makese sense to me for
> filtering content, but they make no sense as a replacement for IOLs. How
> are you going to implement something like ap_send_fb() using buckets and
> filters that is easy to see and understand?  We are trying to use
> filters to fix all of Apache's problems.

You were at the meeting when this was discussed.  There is no need for
IOLs.  They don't provide anything to us.  As far as implementing
ap_send_fb, that is why we have the block argument to read.  This was all
discussed and designed properly.

> > They were Deans first attempt, and while they are close, they
> > aren't quite right.  Buffs are just ugly, and part of the point of
> this
> > was to remove Buff from the code, because nobody really understands
> the
> > guts of it.
> You don't understand how BUFF works, so you are replacing it. Do I
> really need to point out the logic error here?
> The function in BUFF is there for a reason. If we do not fully
> understand what function we need to replicate (and we apparently don't)
> then we will rediscover it piece by painful piece, hack solutions into
> the filter code and end up with a beast more ugly than what we started
> with. Stream of conscienceness design is fine just so long as you know
> when you are doing it and are prepared for the consequences. Be prepared
> to scrap everything and start over when you figure out you've designed
> youself into a corner.

I didn't design the filter code, we all did.  It was done in a large
meeting with about twenty people there.  Buff implements three
things.  1)  Buffering, 2) Chunking, 3) charset translation.  1 is handled
by the core filter.  2 is handled by the chunking filter and 3 is handled
by the translation filter.  The only reason BUFF is so complex is because
it tried to handle all three together.


Ryan Bloom               
406 29th St.
San Francisco, CA 94131

View raw message