Next version is here.  I'm gunna call it 1.3, because I can.

First thing to mention is that there's virtually no change in the API.
You might find a couple variables that you used to be able to access
directly that you no longer can.  You can no longer directly access the
address in the the HttpRequest object.  You must use the GetAddress() and
GetPort() accessors.

I rewrote the entire underlying system.  That's why it took so long.  All
the text parsing is the same, but the 3 server modes (single threaded,
thread pool, and one thread per request) are brand spanking new.  I've run
them through some pretty brutal tests, to the best of my abilities on my
dual Xeon system, and I can't get it to hang up at all.

Thanks to Michal Pleban for sending me a great stress test tool.  It's
included in the ehs 1.3 package.  I've made it a bit more generic, and
it's not really polished, but if you wanna test out your EHS program,
it'll do a pretty good job.  There's documentation on it in

New feature: you can turn off request routing through registered EHS
objects by setting the server parameter oSP["norouterequest"]=1;  This
makes it so you can use paths without having registered EHS objects along
the entire path.  Someone asked for it; here it is.

File names have changed.  I got rid of all the capitalization in all the
file names.  This might cause grief.  I'm sorry, but I finally got sick of
living with the mistake I mad of creating filenames with capital letters.
I will do my best to never do this again.

EHS is now more HTTP/1.1 compliant.  EHS supports persistent connections
and streamed requests.  Note that this is not as well tested as doing one
request per TCP connection.  There may be bugs.  Unfortunately, the stress
tester doesn't simulate this behaviour.  Me typing in requests by hand
simulates this behaviour.  While I'm a pretty good typist.. I'm limited to
about 1 request every 5 second or so :(