lighty's life

lighty developer blog

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.

Please note that we won't accept comments for posts older than 3 months! Also please use our bug tracker to report bugs, and our irc channel #lighttpd@libera to chat.

« lighty at the railsconf What I learned at the railsconf »