Todo » History » Revision 30
Revision 29 (stbuehler, 2009-11-15 21:25) → Revision 30/63 (stbuehler, 2009-12-19 21:22)
h1. small todo list Note: this list is updated every now and then and doesn't necessarily represent the exact state of development. Use it as a rough overview. * core ** out-of-fd handling should be (only) in the main worker ** ipv6 support (for radix-tree, used for mod_access) ** throttling by ip ** X-Sendfile/X-LIGHTTPD-Send-tmpfile support, maybe new stuff like X-Throttle ** limit request/response header size, request url length ** listen to unix sockets ** config parser cleanup ** option for directory of upload tempfiles * angel ** zero downtime restarts ** log rotation (or use the zero downtime restart?) ** control socket interface ** angel-control util * log ** scheme:// prefix ** support for pipes ** open log files with angel ** print "startup" (== if logging is disabled) log messages to stderr/angel if the log level target isn't /dev/null * plugin api ** inter-plugin api ** plugin data per client ip address *** can be used for bandwidth throttling, limit requests per second, limit concurrent requests etc *** has to be shared among all workers so locking needed? *** maybe let main worker do the lookup/removal in a radix tree so no locking needed for that and let plugin make sure it's threadsafe when modifying * modules ** port remaining modules from 1.x *** mod_uploadprogress *** mod_ajp13 ? ** sql vhost (lua handler go generate actions from db rows?) ** add even more innovative modules :) * mod_status ** show timeout in duration column like "5/120" ? * mod_dirlist ** generate stat dirlist/html body async (to allow etag-cache-hit) ** javascript for sorting (from mod_status) * mod_openssl ** sni support * mod_deflate ** add some options: buffer size, minimum-file-size, compression parameters, select allowed methods * mod_fastcgi ** x-sendfile support * stat-cache: ** revalidate dirlist entries with stat() after cache hit ? ** purge invalid entries (stat()/open() failed), i.e. remove from hash tables ** check for normal stat entry, stat() and S_ISDIR before queuing dirlist job ** reset ttl after revalidating entries ** limit for hash tables? ** check symlink/symlink-if-owner-match * test framework * build systems ** use shared libraries for common libs ** lighty common libs should probably installed in a default lib directory (/usr/lib), plugins in a subdir ** provide pkg-config for 3rd party module builds ** at least one build system should provide static builds