TODO
changeset 2 b3afb9f1e801
parent 0 6f7a81934006
equal deleted inserted replaced
1:30113bfbe723 2:b3afb9f1e801
     1 Here are the things that I have left to complete (roughly in order of
     1 Here are the things that I have left to complete (roughly in order of
     2 personal preference).  The lines marked "RELEASE TARGET" are the point
     2 personal preference).  I have seperated it into a series of release
     3 of development that I hope to reach before I make another release.  Some
     3 targets in order to have short quantitative goals for making new
     4 of the other items after the last "RELEASE TARGET" may make it into a
     4 releases.
     5 release if I feel like it.  I want short and easy to define goals so I
     5 -------------------------------------------------------------------------------
     6 can keep the development periods shorter.
     6 FOR VERSION 0.97:
       
     7 
       
     8 - Revert vdomain::lookup back to the single-argument case, and yank the
       
     9   dead code.
       
    10 
       
    11 - Add tests for:
       
    12   - proper handling of creating paths with a trailing '/'
       
    13   - authvmailmgr
       
    14   - execution of presetuid and postsetuid hooks in authvmailmgr
       
    15   - daemon "stat" command
       
    16   - daemon adduser3 command
       
    17   - vupgrade command
       
    18   - exit 99 from vdeliver-predeliver causes delivery to be skipped
       
    19 
       
    20 - Add note to FAQ or HOWTO regarding the two web interfaces
       
    21 
       
    22 - Add more complete tests to verify correct operation of "vaddusers"
       
    23   command.
       
    24 -------------------------------------------------------------------------------
       
    25 FOR VERSION 0.97.1:
       
    26 
       
    27 - Add a "vrenuser" tool.
       
    28 
       
    29 - Make vcheckquota and daemon stat handle folders.
       
    30 
       
    31 - Always "touch" $VUSER/cur on successful authentication, to provide for
       
    32   a "last login time".
       
    33 
       
    34 - Expand the record format to include a "last modified" field, and to
       
    35   change the flag values from binary 0/1 to ASCII.
     7 
    36 
     8 - Add note to FAQ regarding PHP error code 255 meaning the daemon is not
    37 - Add note to FAQ regarding PHP error code 255 meaning the daemon is not
     9   running properly (once it's been confirmed).
    38   running properly (once it's been confirmed).
    10 
    39 
    11 - Add tests for:
    40 - Fix checkvpw to set MAILDIR before executing postsetuid somehow
    12   - authvmailmgr
       
    13   - execution of presetuid and postsetuid hooks in authvmailmgr
       
    14 
    41 
    15 - Add note to FAQ or HOWTO regarding the two interfaces
    42 - Make quota check program check all directories.
    16 
    43 
    17 - Fix checkvpw to set MAILDIR before executing postsetuid somehow
    44 - Add Courier IMAP support to the bulletin facility
    18 
    45 
    19 - Convert existing TeXinfo documentation to SGML
    46 - Convert existing TeXinfo documentation to SGML
    20 
    47 
    21 - Add a mailbox size daemon command
    48 - Make vrehash take the bits and slices values as command-line
       
    49   parameters.
       
    50 -------------------------------------------------------------------------------
       
    51 FOR VERSION 0.98:
    22 
    52 
    23 - Expand the record format to include a "last modified" field, and to
    53 - Make the TCP daemon the default usage, and drop the unixserver
    24   change the flag values from binary 0/1 to ASCII.
    54   requirement.
    25 
       
    26 - Add the necessary code for NDBM, MySQL, and PostgreSQL password tables.
       
    27 
       
    28 - Add more complete tests to verify correct operation of "vaddusers"
       
    29   command.
       
    30 
       
    31 - Add Courier IMAP support to the bulletin facility
       
    32 
       
    33 - Add support to the vpwtable template that allows writing a batch of
       
    34   users in a more efficient manner
       
    35   - start writing (locks the table for other writes, enter nosync mode)
       
    36   - append record (check for prior existance of record, add it)
       
    37   - stop writing (sync data and unlock the table)
       
    38 
       
    39 - Use the above to support a more efficient version of:
       
    40   - vpasswd2db
       
    41   - vrehash
       
    42 
       
    43 - Figure out how to make vdeliver write to both the output file and the
       
    44   queue simultaneously, to avoid needing to do rewinds.
       
    45 
       
    46 RELEASE TARGET 0.97
       
    47 
    55 
    48 - Make the daemon commands stand-alone modules, using the revised daemon
    56 - Make the daemon commands stand-alone modules, using the revised daemon
    49   communication protocol.  The daemon then just forks, reads in the
    57   communication protocol.  The daemon then just forks, reads in the
    50   command name, validates it, and hands off to an authentication module.
    58   command name, validates it, and hands off to an authentication module.
    51 
    59 
    52 - The authentication module checks for a custom authentication type
    60 - The authentication module checks for a custom authentication type
    53   based on the command name, does authentication, does setuid,chdir,
    61   based on the command name, does authentication, does setuid, chdir,
    54   and executes the actual command.
    62   and executes the actual command.
       
    63 -------------------------------------------------------------------------------
       
    64 FOR VERSION 1.00:
    55 
    65 
    56 RELEASE TARGET 1.00
    66 - Make vdeliver write to both the output file and the queue
    57 
    67   simultaneously, to avoid needing to do rewinds:
    58 - Set up the necessary structures to completely seperate the virtual
    68   - make pipe
    59   domain information and the real user information, such that each user
    69   - open tmp maildir file
    60   can have a list of virtual domains assigned to it.  This structure
    70   - fork (child exec's qmail-queue)
    61   will specify:
    71   - read data from stdin
    62   - a domain prefix
    72   - write data to file and pipe
    63   - a directory
    73   - if write to pipe fails, delete maildir tmp file and fail
    64   In this way, the virtualdomains will contain:
    74   - if write to file fails, close pipe and fail
    65     domain.org:username-prefix
    75   - write envelope to qmail-queue
    66   And the domain listing with list
    76   - catch exit from qmail-queue
    67     prefix:subdirectory
    77   - close & sync maildir tmp file
    68   Each domain will have a completely independant user directory and
    78 -------------------------------------------------------------------------------
    69   password table.
    79 AFTER VERSION 1.00:
    70 
       
    71 RELEASE TARGET 1.XX
       
    72 
    80 
    73 - Bug fixes and clean-ups, and documentation improvements
    81 - Bug fixes and clean-ups, and documentation improvements
    74 
    82 
    75 RELEASE TARGET 2.00
    83 - Add the necessary code for *DBM, MySQL, and PostgreSQL password tables.
    76 
       
    77 - Investigate making all virtual users have a directory
       
    78 
    84 
    79 - add a "vadddomain" command that:
    85 - add a "vadddomain" command that:
    80   - adds a new user to /etc/passwd
    86   - adds a new user to /etc/passwd
    81   - creates the new user directory
    87   - creates the new user directory
    82   - su's to that user and runs vsetup
    88   - su's to that user and runs vsetup
   120 
   126 
   121 - In vmailmgrd:
   127 - In vmailmgrd:
   122   ? add support for PAM for non-virtual users (this may be difficult,
   128   ? add support for PAM for non-virtual users (this may be difficult,
   123     requiring a change in the authentication model)
   129     requiring a change in the authentication model)
   124 
   130 
   125 - documentation
   131 - Develop support for HMAC passcodes, in order to support CRAM-MD5
   126   - write a "getting started" guide
   132   authentication, as per RFCs 2195 and 2104.
   127 
   133 
   128 - miscelaneous
   134 - miscelaneous
   129   - code clean-ups, including internal documentation
   135   - code clean-ups, including internal documentation
   130 
   136