- Add a CVM suitable for anonymous FTP - v1client dies if domain is NULL in cvm_client_authenticate (can't reproduce this bug) - Write tests for: - cvm_client_split_account in v2client.c - cvm_client_ucspi_domain and cvm_client_setugid (?) - Add concurrent access support to cvm-local mode? - Add cvm-tcp module code? - Build a caching CVM proxy - Two hash tables keyed on binary request string. - First hash table for positive responses, holds raw response binary. - Second hash table for negative responses, holds only response code. - Caches positive response for $TTL seconds. - Caches negative response for $TTL_BAD seconds. - Do not cache temporary errors. - Add support for allow/deny tables - File based: if $CVM_ACCESS/deny/$USER exists, or if $CVM_ACCESS/allow exists and $CVM_ACCESS/allow/$USER does not exist, deny the user. Call a common function to test. - SQL modules: add an extra required boolean column to the query. - Write a module to do lookups from a CDB file, as well as a tool to manipulate that file "cdbpasswd". - Write cvm UDP-to-command and local-to-command relays: - recv input block from socket - spawn command - write block - read result - send result back on socket - Split into cvm (containing the main modules) and lib/cvm (containing the client/module code). cvm-*sql: - Add hooks for prepare/execute in SQL modules. cvm-vmailmgr: - Add code to vmailmgr_auth to try to grab the password from /etc/passwd if the main authentication fails. - Write modules for authenticating against a vmailmgrd daemon, both local and (TCP) remote.