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.
1. abstract all read() calls into a network_read() call and use the best possible read() implementation (read(), readv(), recv(), ...) [done]
2. abstract file-descriptors into a fd-struct like { int fd; SSL *ssl; enum { FILE, SOCKET, PIPE}}. This is mostly interesting to mod_proxy + SSL and sendfilev() on solaris over a pipe for mod_cgi.
3. bring mod_proxy and mod_fastcgi closer 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.