--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/TODO Wed Jan 16 22:39:43 2008 +0100
@@ -0,0 +1,130 @@
+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
+