httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ben Hyde <>
Subject Modules in own address space.
Date Sun, 23 Nov 1997 17:01:21 GMT

I'm building a plugin to Apache, and I seem to be
swallowing a bigger project than I expected.  I thought
I'd share the pain a little.

The current module API design is a hybrid of call backs and data
structures.  This is nice, but it makes it hard to place
the module in it's own address space.  In my case this is
necessary.  I can't take the risk of letting a third party's
code into my system, nor can I coerce Apache's architecture
into that found inside of my system.

Of course placing a module in it's own address space is
generally desirable since the lifecyle of these satilite systems
badly needs to be decoupled from that of Apache.  My main
system stays up for weeks at a time, and the coupling
I'm building to Apache stays up for about a day at a
time, of course the Apache processes can have shorter lifecyles.
In other senarios: authorization, cgi, etc. the satilite
process may want to run a range from shorter to longer
that of Apache.

All that tends to lead one toward an plugin API design that
uses a transport layer between Apache and the plugin that
is stream like (possibly using shared memory) and is able
to manage to keep the satilite and Apache in synch around
the request/server data structures.

I seem to be on my way to keeping three sets of books to
do this.  One set of request/server data structures for
Apache, one for my plugin, and one in the satilite process.
I then block compare so I can stream diffs betwix the
other processes in the pair.

Have other people climbed out on this limb or something

 - ben h.

View raw message