Project

General

Profile

Actions

Todo » History » Revision 22

« Previous | Revision 22/63 (diff) | Next »
stbuehler, 2009-10-08 12:10


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
    • response parser: accept \n too
    • listen to unix sockets
  • 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
    • add even more innovative modules :)
  • mod_status
    • show timeout in duration column like "5/120" ?
    • ?format=auto for parsable status polling
  • mod_dirlist
    • generate stat dirlist/html body async (to allow etag-cache-hit)
    • javascript for sorting (from mod_status)
  • 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

Updated by stbuehler about 15 years ago · 22 revisions