Bill Stoddard wrote: > I would argue that we do not have a good (read architecturally clean) way to > abstract > network io with filters. The NAL is a perfect compliment to the filter code. > Here are my > specific itches: > > 1. My SSL library API uses a different model than OpenSSL. Specifically, it > uses uses > secure_socket calls (e.g., secure_read(), secure_write(), etc.). I -could- > integrate SSL > into Apache 2.0 using filters, but I would have to replace core_inout_filter > and > core_output_filter with my own filters, possibly implement special bucket > types > (apr_bucket_secure_socket_t, etc.) With NAL, I can just hook the network io > primitives > with my own calls and use the filters already in Apache. I hope to use > OpenSSL but that is > just not a possibility now. My itch is real to me even if you don;t feel it > :-)
FWIW you can also run OpenSSL in this mode, but I elected not to (coz then SSL will work automagically over other transports). > 2. I gave a pitch about IBM's Fast Response Cache Accelerator (aka AFPA) at > ApacheCon a > few years back. The AFPA implementation on Windows uses it's own socket API > (afpa_read, > afpa_accept, afpa_send, et. al.). Again, the NAL provides a clean way for my > Apache > module to hook the right NAL implementing my specific network io primitives > with the > minimum amount of shuffleing httpd code. > > Can I do both of these with filters? Sure, but the code architecturally ugly > as sin. > Allan Edwards solved both of these problems cleanly in early Apache 2.0 > iterations using > Dean Gaudet's IOLs. NAL is essentially a scaled back version of Dean's IOLs > (NAL is > focused just on network i/o, not filtering). And I know what Luke is talking > about as > well. Windows NT does implement filters (AFPA uses file system filters) in > addition to a > network io abstraction layer. NAL is a great compliment to filters. So ... why did we drop IOL? :-) Cheers, Ben. -- http://www.apache-ssl.org/ben.html "There is no limit to what a man can do or how far he can go if he doesn't mind who gets the credit." - Robert Woodruff
