Skip to content

development

Project Glib: it compiles … mostly

Part of my ongoing, hidden effort to port lighttpd to glib I can now at least say: it compiles.

Well, mostly. The core does compile and mod_staticfile is also mostly done. Mostly, as I don’t have decided on how to handle the config-file handling yet.

Weekend Projects: killing buffer.c and array.c

As part of a weekend project I’m ripping 1.5 apart a bit. I worked with glib for quite some time now and feel the need to replace the base-structures around “buffer” (strings) and “array” (hash) apart and replace it with the glib counter-parts.

To make this a nice experience and that I don’t harm anyone else I imported trunk into a local bzr tree:

bzr clone svn://svn.lighttpd.net/lighttpd/

to clone the SVN tree.

Let’s see how well that experiment goes.

Weekends Projects: lua as config-language

With the first implementation of mod_cml and later mod_magnet smart users asked why we don’t use lua also as config language for lighttpd.

Up to now I was pushing back and saying that a huge change in the configfile would make upgraders very unhappy as they would have to rewrite the config files. Looking at what we have for 1.5.0 right now, we need tweaks anyway.

There is an Angel for lighty

In changeset r1981 I added a angel process to the lighttpd build. It solves several problems when we have everything running as expected:

  • SIGHUP leads to a graceful restart (config reloads)
  • SIGINT is graceful shutdown as now
  • all unhandled signals lead to a restart of the lighttpd process

lighttpd at the Kieler LinuxTage

I’ll give a presentation on lighttpd at the Kieler Linuxtage on September 8th, 2007. I’ll talk about lighttpd, its past and future, the special modules and performance.

I will also try to give some content to the un-conference going on at the same time. Perhaps some MySQL Proxy stuff?

Bug fixing marathon

Looking at the bug-system a few days ago we had something like 460 bugs open.

Quite a bunch of them were duplicates of the same issue and others were already fixed in the code and just not closed in the bug-system.

Scanning through the bugs I wrote some more test-cases to verify that the reports were valid and along the way at least these bugs got fixed:

  • added dir-listing.set-footer in mod_dirlisting (#1277)
  • fixed hardcoded font-sizes in mod_dirlisting (#1267)
  • fixed different ETag length on 32/64 platforms (#1279)
  • fixed compression of files < 128 bytes by disabling compression (#1241)
  • fixed mysql server reconnects (#518)
  • fixed disabled keep-alive for dynamic content with HTTP/1.0 (#1166)
  • fixed crash on mixed EOL sequences in mod_cgi
  • fixed key compare (#1287)
  • fixed invalid char in header values (#1286)
  • fixed invalid “304 Not Modified” on broken timestamps
  • fixed endless loop on shrinked files with sendfile() on BSD (#1289)
  • fixed counter overrun in ?auto in mod_status (#909)
  • fixed too aggresive caching of nested conditionals (#41)
  • fixed possible overflow in unix-socket path checks on BSD (#713)
  • fixed extra Content-Length header on 1xx, 204 and 304 (#1002)
  • fixed handling of duplicate If-Modified-Since to return 304
  • fixed extracting status code from NPH scripts (#1125)
  • removed config-check if passwd files exist (#1188)

Now the bug-count is at 413, a start.

lighttpd at the PHP Unconference 2007

Last weekend I was at the PHP Unconference and gave a talk about lighttpd. Perhaps we will see a mod_auth_backend_openid in the near future …

A nice small unconference with some nice non-talks about Tagging and University meets Business. While the quantity of attendance was a bit low, the quality was high.

Anyway, my talk covers lighttpd, 1.5.0 and the cool modules around flv, secdownload, … and is available as PDF and SWF

About Perfection, deprecacting mod_rrdtool

Today I stumbled over this quote again:

“Perfection is achieved, not when there is nothing left to add, but when there is nothing left to remove.” — Antoine de Saint-Exupery

… and this reminds me that I want to remove mod_rrdtool from the 1.5.x tree and replace it with a more flexible, external solution.

mod_rrdtool is a rip-off of mod_status and calls the rrdtool binary directly via a pipe. Problems:

  • is has a pipe open all the time
  • it doesn’t handle a restart
  • doesn’t work with max-worker

lighttpd enters the Top5

Netcraft reports:

This month the Web Server Survey adds public tracking of lighttpd, an open source server designed for high-performance sites that has been gaining popularity in recent months. Lighttpd is currently detected on 1.38 million sites for a 1.2% share of the web server market, well ahead of Zeus and moving up quickly on Sun. Lighttpd has a relatively small memory footprint and is optimized for a large number of parallel connections, which has made it popular on sites using applications based on AJAX or Ruby on Rails, or hosting environments for virtual private servers.

The news got picked up by:

With the release of 1.5.0 we aim for higher ranks and try to get ahead of Suns iplanet. You always need a goal: World Domination. :)