httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Roy T. Fielding" <field...@kiwi.ICS.UCI.EDU>
Subject Re: layered I/O (was: cvs commit: ...)
Date Thu, 30 Mar 2000 03:10:36 GMT
>that is to say, the layer is created by writing an iol which actually
>expects an iol, or a BUFF as one of its initializers.  take a peek at
>iol_socket.c, it's almost like this, except it expects an ap_socket_t *...
>which is really just another layer.
>as far as i can tell this implicit linkage is really bothering people --
>they want explicit *next, *prev pointers in the stack of handlers.  i
>don't see the point honestly -- they both achieve the same thing.

Ummm, I can't speak for the others, but that certainly isn't what was
bothering me -- what you describe is exactly how I implemented it in
the Onions library (except without all the Ada95 garbage).  The problem
is that what you are describing wasn't in Ryan's patch, or at least
if it was then it managed to be completely obscured somehow.

The patch "merely" changed our content handler call into an infinite
loop which exited when some module decided it wasn't going to allow
any more filtering (or, more accurately, as soon as some module refused
to pass the baton to another filter).  I'm not sure what that looks
like on a whiteboard model, but from a code perspective it just won't
work -- it requires all of the content to be buffered between relays,
which is unacceptable for any real application of layering.  Heck,
our own BUFF code can't do that, so I suspect we are just arguing
about a non-solution that would break on the first large file filtered.

It's quite possible that I misread the patch, but I did double-check it
twice and the code says the same thing each time.


View raw message