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

[minion-cvs] Timeouts, descriptor parsing, refactoring, more tests.



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

Modified Files:
	TODO 
Log Message:
Timeouts, descriptor parsing, refactoring, more tests.

ClientMain, MMTPClient, Config:
- Support configurable client timeout

Common:
- Make stdout/stderr wrappers not suck

Config, ServerInfo:
- Add support for ServerInfo and directory parsing to ignore unrecognized
  keys

Packet, ServerList, ..., ServerKeys:
- Note work for 0.0.3

ServerMain:
- Change ProcessingThread to be callable-based, not packet-based.

test:
- Tests for log streams
- Tests for client timeouts
- Tests for interval list warnings



Index: TODO
===================================================================
RCS file: /home/minion/cvsroot/src/minion/TODO,v
retrieving revision 1.66
retrieving revision 1.67
diff -u -d -r1.66 -r1.67
--- TODO	14 Jan 2003 05:09:39 -0000	1.66
+++ TODO	17 Jan 2003 06:18:05 -0000	1.67
@@ -8,10 +8,12 @@
         D Deferred
         X Abandoned
 
-NEEDS TO BE WRITTEN
+For a list of good beginner projects, check out HACKING.
+
+NEEDS TO BE WRITTEN:
 
 For 0.0.3:
-       *- Write a list of good introductory projects
+        o Write a list of good introductory projects
         - Client
                 - Add "don't use me for anonymity" boilerplate.
                 - Client support for reply blocks.
@@ -23,20 +25,22 @@
                         - Read message from reply block
                         - Examine reply block
                 - Read Base64-encoded messages and zbomb messages.
-                . Faster (adjustable?) timeout on client connect
+                o Faster (adjustable?) timeout on client connect
                   failure.
                         o Implement client timeout (sigalrm?)
-                        - Add configuration options and reasonable
-                          default.
-                        - Unit tests
+                        o Add configuration options and reasonable default.
+                        o Unit tests
                 - Client-side pooling.
+                - Make client code multiprocess-safe: locking on
+                  cache (if needed!); locking on pool.
+                        - Move lock functionality into Common.
         . Multithreaded server for better network behavior (no 10ms
           hiccups when receiving; no pauses to shred files or deliver
           messages.)
                 o Make all C functions use Py_BEGIN_ALLOW_THREADS and
                   Py_END_ALLOW_THREADS properly.
                 o Make all commonly used Python code threadsafe.
-                . Make Queues threadsafe.
+                o Make Queues threadsafe.
                         o Design
                         o Implement
                         o Rename Queue.py to ServerQueue.py
@@ -47,7 +51,6 @@
                           whole thing is threadsafe as used, and
                           explain what "as used" means.  Add asserts
                           to check "as used".
-                        - Unit tests like mad.
                 o Make shredding happen in a separate thread.
                 o Make delivery happen in a separate thread.
                 o Make packet processing happen in a separate thread. 
@@ -65,6 +68,8 @@
                           methods.
                 o Undaemonize threads; make them get shut
                   down explicitly so they can't die halfway.
+                o Processing thread should be thunk-based so it can
+                  do more than handle packets.
                 . Test like crazy
         . Signals
                 o Cleaner shutdown on TERM.
@@ -76,10 +81,10 @@
                         - Check configuration file for changeable
                           things.  (First, decide what's changeable on
                           the fly.)
-        - Support maybe (for the alpha cycle only!) to get the mixminion
+        X Support maybe (for the alpha cycle only!) to get the mixminion
           version remotely ????
-        - Directories include an "allowable version" section.
-        . Saner retry logic: right now we retry once at each of the 10
+        . Directories include an "allowable version" section.
+        o Saner retry logic: right now we retry once at each of the 10
           next Mix intervals, regardless of interval length.  (Have a 
           separate retry timer that gets rounded to the nearest mix
           event.)
@@ -92,13 +97,13 @@
                 o Tests for _parseIntervalList
                 o Test for new DeliveryQueue code
                 o Validation code for retry intervals.
-                - Test for module configuration
-                - Test for actual retrying
-                - Test for validation code
+                o Test for validation code
+                o Test for module configuration
         - Statistics of some kind (with a server: count messages
           received, errors, etc.)
+        o Tests for stdout/stderr replacement
         - Separate error/other log files. ????
-        - UI
+        . UI
                 - Good user error reporting strategy.
                 - Better error message when path+routinginfo won't fit 
                   into header.
@@ -125,7 +130,7 @@
                   places; coalesce pid and lock.
                 - Make all filenames in server config relative to
                   server home, if not absolute.
-        . MMTP
+        o MMTP
                 o Code to send junk (connection padding)
                         o Implement for client
                         o Implement for nonblocking client
@@ -151,12 +156,22 @@
                         o Test
         - SMTP
                 - Add an extra "this is anonymous" header.
-        - Make ServerInfo more forward-compatible in preparation for
-          changing it in 0.0.4.
-        - Fix aes_ctr128 and bump packet version.
+        . Make ServerInfo more forward-compatible.
+                - Skip sections completely if the version number isn't
+                  recognized.
+                o Support unrecognized keys
         - COME UP WITH A REAL TESTING STRATEGY FOR PERFORMANCE AND
            CLI'S AND MULTI-SERVER SITUATIONS.
         - Tests for packet addressed to server with bogus IP.
+        - Break backward compatibility :P
+                - Fix aes_ctr128 and bump packet version and write
+                  unit tests for counter mode.
+                - Increment packet minor number; make client check
+                  packet minor number.
+                - Add fields to serverinfo, server directory.
+                - Make client check 'Recommended-Software' against
+                  current version.
+                
         - ????
 
 Required for "1.0":
@@ -297,8 +312,6 @@
         - Generate dummy messages
         - IPv6 support.
         - Support for multiple directory servers
-        - Bodies for dummy messages?  We should specify so that different
-          peoples dummies are not different.
         - Notice active attacks and block IPs dynamically.
 
 WHEN WE GET THE CHANCE: