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