Here are the things that I have left to complete (roughly in order of
personal preference). The lines marked "RELEASE TARGET" are the point
of development that I hope to reach before I make another release. Some
of the other items after the last "RELEASE TARGET" may make it into a
release if I feel like it. I want short and easy to define goals so I
can keep the development periods shorter.
- Add note to FAQ regarding PHP error code 255 meaning the daemon is not
running properly (once it's been confirmed).
- Add tests for:
- authvmailmgr
- execution of presetuid and postsetuid hooks in authvmailmgr
- Add note to FAQ or HOWTO regarding the two interfaces
- Fix checkvpw to set MAILDIR before executing postsetuid somehow
- Convert existing TeXinfo documentation to SGML
- Add a mailbox size daemon command
- Expand the record format to include a "last modified" field, and to
change the flag values from binary 0/1 to ASCII.
- Add the necessary code for NDBM, MySQL, and PostgreSQL password tables.
- Add more complete tests to verify correct operation of "vaddusers"
command.
- Add Courier IMAP support to the bulletin facility
- Add support to the vpwtable template that allows writing a batch of
users in a more efficient manner
- start writing (locks the table for other writes, enter nosync mode)
- append record (check for prior existance of record, add it)
- stop writing (sync data and unlock the table)
- Use the above to support a more efficient version of:
- vpasswd2db
- vrehash
- Figure out how to make vdeliver write to both the output file and the
queue simultaneously, to avoid needing to do rewinds.
RELEASE TARGET 0.97
- 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.
RELEASE TARGET 1.00
- Set up the necessary structures to completely seperate the virtual
domain information and the real user information, such that each user
can have a list of virtual domains assigned to it. This structure
will specify:
- a domain prefix
- a directory
In this way, the virtualdomains will contain:
domain.org:username-prefix
And the domain listing with list
prefix:subdirectory
Each domain will have a completely independant user directory and
password table.
RELEASE TARGET 1.XX
- Bug fixes and clean-ups, and documentation improvements
RELEASE TARGET 2.00
- Investigate making all virtual users have a directory
- 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)
- documentation
- write a "getting started" guide
- miscelaneous
- code clean-ups, including internal documentation