lighty on win32
At the railsconf I spent some time to work on the native win32 port of
lighty. Thanks to scons we already had a working build system on
Windows, it only needed some #ifdef’s to get the beast compiling.
The work is not ready for prime-time yet, but is very promissing. All
problems but ‘how to spawn a process’ are solved and the other changes
like emulations for opendir(), socket-read()/write() have lead to
cleaner APIs.
All the network-read() has been moved into the network-backends
(connections.c, mod_proxy.c, … did the read() on their own).
A long time ago I already had written a abstraction layer for read(),
but went too far and failed to strip the complex code down to the good parts.
This time (thanks to svk) I can rollback if I go into the wrong direction.
- abstract all
read()calls into anetwork_read()call and use the best possibleread()implementation (read(),readv(),recv(), …) (done) - abstract file-descriptors into a fd-struct like
{ int fd; SSL *ssl; enum { FILE, SOCKET, PIPE}}. This is mostly interesting tomod_proxy+ SSL andsendfilev()on solaris over a pipe formod_cgi. - bring
mod_proxyandmod_fastcgicloser again and move out the code this is common.
The abstraction of the network_read() will be part of .12 while the win32 port is for 1.5.x, same as the fd-struct.
The cleanup of mod_proxy and bringing it closer to mod_fastcgi will be started in 1.4.12 and be finished as a mod_proxy_core in 1.5.x.
In short, thinks are coming back to speed again.