[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[minion-cvs] back-of-the-envelope plan for 0.0.3



Update of /home/minion/cvsroot/src/minion
In directory moria.mit.edu:/tmp/cvs-serv30021

Modified Files:
	TODO 
Log Message:
back-of-the-envelope plan for 0.0.3

Index: TODO
===================================================================
RCS file: /home/minion/cvsroot/src/minion/TODO,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -d -r1.58 -r1.59
--- TODO	8 Jan 2003 03:58:30 -0000	1.58
+++ TODO	8 Jan 2003 07:53:01 -0000	1.59
@@ -11,15 +11,62 @@
 NEEDS TO BE WRITTEN
 
 For 0.0.3:
-        - Client support for reply blocks.
-        o Better command breakdown for pulling directories.
-        - Saner retry logic
-        - Consider linewrap protection on server descriptors, if demand
-          warrants.
-        . Uninstall support?
+        - Client
+                - Client support for reply blocks.
+                - Faster (adjustable?) timeout on client connect failure.
+        - Multithreaded server for better network behavior (no 10ms
+          hiccups when receiving; no pauses to shred files or deliver
+          messages.)
+                . Make all C functions use Py_BEGIN_ALLOW_THREADS and
+                  Py_END_ALLOW_THREADS properly.
+                - Make all commonly used Python code threadsafe.
+                - Make Queues threadsafe.
+                        - Design
+                        - Implement
+                        - Unit tests like mad.
+                - Make shredding happen in a separate thread.
+                - Make delivery happen in a separate thread.
+                - Make packet happen in a separate thread. 
+        - Signals
+                - Cleaner shutdown on TERM.
+                - Good reset handling
+        - Support (for the alpha cycle only!) to get the mixminion
+          version remotely ????
+        - Saner retry logic: right now we retry once at each of the 10
+          next Mix intervals, regardless of interval length.
         - Statistics of some kind
-        - Good user error reporting strategy.
-        - Faster (adjustable?) timeout on client connect failure.
+        - UI
+                - Good user error reporting strategy.
+                - Better error message when path+routinginfo won't fit 
+                  into header.
+                - Beautify list-servers output.
+                o Make path parsing accept space around the commas and colon.
+                o Make paths print more cleanly.
+                o Better command breakdown for pulling directories.
+        - Key management:
+                . Ability to generate new serverdesc with old keys.
+                - Ability to notice discrepancies between SD and
+                  server configuration.
+                - Consider linewrap protection on server descriptors, 
+                  if demand warrants.
+        - Build/install:
+                . Uninstall support?
+        - Security:
+        	- Password-protect dirserver keys
+        - Configurability
+                - Put pid and lock and key and queues in different places.
+                - Relative paths all throughout config files.
+                - Make all filenames in server config relative to
+                  server home, if not absolute.
+                - Make server gripe loudly when config doesn't match published
+                  serverinfo.
+        - MMTP
+                - Code to send junk (connection padding)
+                  [Do current servers even handle this right?  Should
+                   we bump the MMTP version up?]
+                - Renegotiate connections
+                - Session managment and resumption (security issues?)
+        - COME UP WITH A REAL TESTING STRATEGY
         - 
         - ????
 
@@ -29,17 +76,14 @@
           the first beta.]
 
         - Better CLIs
-                - Actual strategy for reporting exceptions vs
-                  user-visible errors.
                 - Add another level of CLI commands. (E.g., mixminion server
-                  keygen, mixminion client send, etc.)
+                  keygen, etc.)
         - Key rotation and expiry
-                - Generate new serverdesc with old keys.
+                - Document "DELKEYS"
                 - Automatic keygen as needed
                 - Automatic key rotation
                 - Password-protected private identity keys
                 - Password-protected private link/packet keys
-                - Password-protect dirserver keys
         - Security
                 - Make createPrivateDirs gripe about group-writable parent
                   dirs
@@ -49,13 +93,8 @@
                 - Directory servers should cache intermediate information
                 - The server's control structures need to change to
                   avoid latency problems.
-        - Server core
-                - Cleaner shutdown on TERM.
-                - Good reset handling
-                - Drop undeliverable messages in a sane way
         - Modules and module support
                 - MBOX
-                        - Use async or threading to cope with blocking MTAs
                         - Full config validation
                         - Full boilerplate text
                 - Use ESMTP as available
@@ -64,7 +103,7 @@
                 - Tell ModuleManager about async code
                 - Real SMTP module
                         - Abuse prevention
-                        - Support for setting 'Subject' and 'From' lines.
+                        - Support for setting 'Subject' and 'From' lines.???
                         - Support multiple exit addresses.
                 - Incoming email gateway
                 o Refactor module manager to do decoding _before_ passing
@@ -76,15 +115,11 @@
                 - Make zlib bomb prevention configurable.
         - Configurability
                 - Support for http proxies.
-                - Put pid and lock and key and queues in different places.
-                - Relative paths all throughout config files.
                 - Support for one-side-only MMTP configurations.
                 - Add 'ALLOW' lines to blacklist.
                 o Make batching algorithm configurable
                 o Infer server IP
                 . Freak out properly on missing/unpublishable IP.
-                - Make all filenames in server config relative to
-                  server home
                 - Directory generation should be configurable somehow.
                 - Make listening configurable for multiple ports/ips, not
                   all of which need be published.  Perhaps allow different
@@ -95,13 +130,9 @@
                 - Make 'push' and 'retry' delivery rates independant and
                   module-adjustable
                 - Make 'drop undeliverable' rate configurable.
-                - Implement allow/deny code
-                - Make server gripe loudly when config doesn't match published
-                  serverinfo.
         - Client support
                 - Support to remove servers from imported directory,
                   or to block servers from directory.
-                - Generate (but don't send) a message
                 - Generate a reply block
                 - Read message from reply block
                 - Check paths before reading from stdin.
@@ -120,17 +151,13 @@
                 o Send message to user with known server
                 o Real server directory management
                 - Real PKI
-                - Queue a bunch of messages at the client level.
-                - Client-side pooling
+                - Client-side pooling, automatic or manual.
         - MMTP / async
                 - "IP" belongs in the MMTP part of the server descriptor.
-                - Make listen options configurable (backlog, IP)
-                - Code to send junk (connection padding)
+                - Make listen options configurable (backlog)
                 o Timeout old connections
                 - Timeout connections more aggressively under higher load.
-                - Renegotiate connections
                 - (Make sure sender retries on bogus close)
-                - Session managment and resumption (security issues?)
                 - Bandwidth throttling
                 - Tests for all cases:
                         - Junk
@@ -179,6 +206,8 @@
                 - Write complete user's manual
                 - Complete all other docs
                 - History.
+        - Cosmetic changes
+                - Perhaps "SMTP" should be renamed to "MAIL".
 
 
 Unspecified: