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

