TODO
changeset 0 6f7a81934006
child 2 b3afb9f1e801
--- /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
+