Here are the things that I have left to complete (roughly in order of personal preference). I have seperated it into a series of release targets in order to have short quantitative goals for making new releases. ------------------------------------------------------------------------------- FOR VERSION 0.97: - Revert vdomain::lookup back to the single-argument case, and yank the dead code. - Add tests for: - proper handling of creating paths with a trailing '/' - authvmailmgr - execution of presetuid and postsetuid hooks in authvmailmgr - daemon "stat" command - daemon adduser3 command - vupgrade command - exit 99 from vdeliver-predeliver causes delivery to be skipped - Add note to FAQ or HOWTO regarding the two web interfaces - Add more complete tests to verify correct operation of "vaddusers" command. ------------------------------------------------------------------------------- FOR VERSION 0.97.1: - Add a "vrenuser" tool. - Make vcheckquota and daemon stat handle folders. - Always "touch" $VUSER/cur on successful authentication, to provide for a "last login time". - Expand the record format to include a "last modified" field, and to change the flag values from binary 0/1 to ASCII. - Add note to FAQ regarding PHP error code 255 meaning the daemon is not running properly (once it's been confirmed). - Fix checkvpw to set MAILDIR before executing postsetuid somehow - Make quota check program check all directories. - Add Courier IMAP support to the bulletin facility - Convert existing TeXinfo documentation to SGML - Make vrehash take the bits and slices values as command-line parameters. ------------------------------------------------------------------------------- FOR VERSION 0.98: - Make the TCP daemon the default usage, and drop the unixserver requirement. - Make the daemon commands stand-alone modules, using the revised daemon communication protocol. The daemon then just forks, reads in the command name, validates it, and hands off to an authentication module. - The authentication module checks for a custom authentication type based on the command name, does authentication, does setuid, chdir, and executes the actual command. ------------------------------------------------------------------------------- FOR VERSION 1.00: - Make vdeliver write to both the output file and the queue simultaneously, to avoid needing to do rewinds: - make pipe - open tmp maildir file - fork (child exec's qmail-queue) - read data from stdin - write data to file and pipe - if write to pipe fails, delete maildir tmp file and fail - if write to file fails, close pipe and fail - write envelope to qmail-queue - catch exit from qmail-queue - close & sync maildir tmp file ------------------------------------------------------------------------------- AFTER VERSION 1.00: - Bug fixes and clean-ups, and documentation improvements - Add the necessary code for *DBM, MySQL, and PostgreSQL password tables. - add a "vadddomain" command that: - adds a new user to /etc/passwd - creates the new user directory - su's to that user and runs vsetup - fixes the user's home directory permissions - adds entries to control/virtualdomains - adds entries to control/rcpthosts - dynamic information per mailbox: - total number of emails and bytes received - number of emails and bytes currently - time of first and last messages - last access time via POP3 - text file named "data" - one line per datum, using "key=value" format - Write library routines, interfaced through vpwentry, that can get/set the dynamic data. - Modifiy the pop bulletin command to take the bulletin directory on the command line? - Continue to seperate the "misc" library directory into modules. - Add a daemon command to list all the configuration for a virtual domain. - document vchattr, vchforwards - limit the number of accounts created per virtual domain - look into interoperating with sqwebmail http://www.inter7.com/sqwebmail/ - look into interoperating with qmailadmin http://www.inter7.com/qmailadmin/ - add support for a streaming protocol, such that multiple commands could be issued per daemon session - in all the command-line programs: - if the environment variable VDOMAIN is set, read the virtual domain from that variable, prompt for a password, and do a server call - In vmailmgrd: ? add support for PAM for non-virtual users (this may be difficult, requiring a change in the authentication model) - Develop support for HMAC passcodes, in order to support CRAM-MD5 authentication, as per RFCs 2195 and 2104. - miscelaneous - code clean-ups, including internal documentation