Plexus 2.2 is official (security fix included, check it out)

Tony Sanders (
Wed, 07 Jul 1993 20:27:31 -0500

Plexus is an HTTP server written in perl (originally from
It's efficent because it handles it's own socket connections and most
requests are handled internally to the server itself (as opposed to exec'ing
external programs though that can be done if you need). This means that most
requests requires only a single fork() to process.

Plexus supports HTTP/1.0 (though I only implement GET it would be easy to
add other request methods as needed). It also now has the ability to
do format conversion (though real format negitiation is still not in yet).
As browsers support more HTTP/1.0 functions I'll be extended Plexus.

2.2 is really a working release, I expect there to be a 2.3 release before
too long to fix all the bugs I probably introduced in 2.2. Hopefully,
things have settled down now so future release will just extend
functionality and fix bugs (instead of a redesign each time :-)
Several people are working on extended functionality, in 2.2 there is
a contributed extension called, and I hope to add more
in the future (someone is working on secure access and another person
is doing a texinfo converter).

You can get plexus via anon ftp to in pub/Plexus-2.2.tar.Z
It's also available from

comments/suggestions/improvements are welcome

>>>>> changes <<<<<<

Lots of changes, notably there were a couple of security holes I introduced
into that are plugged. Most of the other changes are listed below.

Changes to Plexus from Previous Versions

Plexus 2.2

* easier to customize install directories
* removed the crusty, I think someone is working on patches
to do this right.
* converted everything to use pacakges
* some security holes patched with .. and invalid requests in
Thanks to Mitchell N Charity <>
* added support for document translation (lots of changes in
* added to convert from setext (.etx) to HTML
* added better image decoding support thanks to Chris McRae
<>. You can now specify image decoding
in a configuration file ($MAP_CONFIG_FILE) and you can use
bitmasks or rectangles. In most cases you don't have to write
any code! Things like bookmark are more complicated and still
require code, but few things really need that.
* &send_file went away and was replaced with: &wrap_file, &wrap_fd,
&raw_file, &raw_fd. &require is certainly the only stable
interface at this point (though I don't see &raw_fd changing again).
&wrap_* will probably have to change again to make file translations
work "right".
* added support for hypertext'ed man pages from pre-formatted files.
In this initial release they are specific to bsdi man pages
but should be easy to configure for your local system (most of the
config options are at the top of the file).
* added some log file summerizing scripts