Todo » History » Revision 36
Revision 35 (stbuehler, 2010-02-28 18:59) → Revision 36/63 (stbuehler, 2010-07-17 22:50)
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 ** throttling by ip ** X-Throttle ? ** limit request/response header size, request url length ** listen to unix sockets ** config parser cleanup ** option for directory of upload tempfiles ** wait for listen-sockets from angel from LOADING -> SUSPENDED * angel ** 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_evasive *** mod_extforward *** mod_uploadprogress *** mod_ssi ? *** mod_ajp13 ? *** mod_trigger_b4_dl ? *** mod_userdir ? *** mod_usertrack ? *** mod_(web)dav ? ** new concept for: *** mod_{my,pg}sql_vhost (load complete config instead of just doc-root) *** mod_rrdtool ** lua plugins for: *** mod_flv_streaming ** sql vhost (lua handler go generate actions from db rows?) ** mod_auth_dovecot ** 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) * mod_openssl ** sni support ** user certs? * mod_deflate ** add some options: buffer size, minimum-file-size, compression parameters, select allowed methods * mod_fastcgi ** keep-alive connections ** multiplex? * mod_auth ** reload password file after changes (ttl?) * 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