Project

General

Profile

Actions

Todo » History » Revision 43

« Previous | Revision 43/63 (diff) | Next »
stbuehler, 2010-09-13 23:21


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.

  • not thread-safe config handling (setups are only allowed in startup mode and don't need to be thread-safe)
    • option log.timestamp (li_log_timestamp_new)
    • - (li_server_ts_format_add)
  • 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
    • 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_extforward
      • mod_ssi ?
      • mod_ajp13 ?
      • mod_trigger_b4_dl ?
      • mod_usertrack ?
      • mod_(web)dav ?
    • new concept for:
      • mod_{my,pg}sql_vhost (load complete config instead of just doc-root)
      • mod_rrdtool
    • 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
    • add "force" modus to enforce a specific compression method
    • add "enflate" or "fix compression" action to deflate the content if the client doesn't understand the current encoding
      The idea behind this would be something like this:
      memcached.lookup ( ..., ${ deflate.fix; deflate; }, ${
          php;
          deflate.enforce "bzip2";
          memcache.store ...;
          deflate.fix;
          deflate;
      };
      
  • mod_fastcgi
    • keep-alive connections
  • mod_memcache
    • store http headers, so we can cache deflated content too
  • 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 over 14 years ago · 63 revisions