--- a/TODO Sun Jan 20 00:12:17 2008 +0100
+++ b/TODO Sun Jan 20 00:22:09 2008 +0100
@@ -1,80 +1,86 @@
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.
+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).
-- Add tests for:
- - authvmailmgr
- - execution of presetuid and postsetuid hooks in authvmailmgr
+- Fix checkvpw to set MAILDIR before executing postsetuid somehow
-- Add note to FAQ or HOWTO regarding the two interfaces
+- Make quota check program check all directories.
-- Fix checkvpw to set MAILDIR before executing postsetuid somehow
+- Add Courier IMAP support to the bulletin facility
- 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
+- Make vrehash take the bits and slices values as command-line
+ parameters.
+-------------------------------------------------------------------------------
+FOR VERSION 0.98:
-- 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 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,
+ based on the command name, does authentication, does setuid, chdir,
and executes the actual command.
-
-RELEASE TARGET 1.00
+-------------------------------------------------------------------------------
+FOR VERSION 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
+- 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
-RELEASE TARGET 2.00
-
-- Investigate making all virtual users have a directory
+- Add the necessary code for *DBM, MySQL, and PostgreSQL password tables.
- add a "vadddomain" command that:
- adds a new user to /etc/passwd
@@ -122,8 +128,8 @@
? 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
+- 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