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

[minion-cvs] Client-side pooling, locking, refactoring. (Untested)



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

Modified Files:
	TODO 
Log Message:
Client-side pooling, locking, refactoring.  (Untested)

(Untested; use at your own risk!)

ClientMain:
        - Add basic locking functionality
        - Add a simple pool to hold messages when we've been asked to, or
          when we can't deliver them.
        - Add log to remember which SURBs we've used
        - Handle files that contain many SURBs
        - Refactor command-line argument parsing to minimize code duplication
        - Add SURB inspection command.

Common:
        - Add a succeedingMidnight function

Common, ServerMain:
        - Move Lockfile to Common

Packet:
        - Add support for multiple reply blocks in one file.



Index: TODO
===================================================================
RCS file: /home/minion/cvsroot/src/minion/TODO,v
retrieving revision 1.71
retrieving revision 1.72
diff -u -d -r1.71 -r1.72
--- TODO	5 Feb 2003 07:10:53 -0000	1.71
+++ TODO	6 Feb 2003 20:20:02 -0000	1.72
@@ -99,12 +99,22 @@
                   be random, and there should be no tag.
                         o Implement
                         o Test
+        o Make ServerInfo more forward-compatible.
+                o Support unrecognized keys
+        o SMTP
+                o Add an extra "this is anonymous" header.
+        o Build/install:
+                o Uninstall support? (Right now, we take a cowardly
+                  approach that may be good enough.)
+                o Perhaps 'make install' should nuke dead files. (Queue.py)
+                o Support people who _do_ have OpenSSL 0.9.7 installed.
         . Client
                 o Faster (adjustable?) timeout on client connect
                   failure.
                         o Implement client timeout (sigalrm?)
                         o Add configuration options and reasonable default.
                         o Unit tests
+                o Refactor the heck out of argument parsing.
                 . Add "don't use me for anonymity" boilerplate.
                 . Client support for reply blocks.
                         o Recheck spec on external reply block format
@@ -113,8 +123,9 @@
                         o Generate a reply block
                         o Read message from reply block
                         o Send message to reply block
-                        - Remember used reply blocks??
-                        - Examine reply block
+                        o Remember used reply blocks
+                        o Examine reply block
+                        o Use first reply block in a file.
                         - Refactor and document
                 . Read Base64-encoded messages and zbomb messages.
                         o Implement backend
@@ -123,11 +134,17 @@
                         . Test frontend
                         - Refactor until clean
                         - Document
-                - Client-side pooling.
-                	- Design
-                - Make client code multiprocess-safe: locking on
+                . Client-side pooling.
+                	o Design
+                        o Implement
+                        - Test
+                . Make client code multiprocess-safe: locking on
                   cache (if needed!); locking on pool.
-                        - Move lock functionality into Common.
+                        o Move lock functionality into Common.
+                        o Locking on cache
+                        o Locking on pool
+                        - Refactor locking; use only a single lock
+                          for all client functionality.
         . Directories include an "allowable version" section.
         . UI
                 o Make path parsing accept space around the commas and colon.
@@ -136,15 +153,6 @@
                 - Better error message when path+routinginfo won't fit 
                   into header.
                 - Better concept of too-short paths.
-        . Build/install:
-                o Uninstall support? (Right now, we take a cowardly
-                  approach that may be good enough.)
-                o Perhaps 'make install' should nuke dead files. (Queue.py)
-                . Support people who _do_ have OpenSSL 0.9.7 installed.
-        o Make ServerInfo more forward-compatible.
-                o Support unrecognized keys
-        o SMTP
-                o Add an extra "this is anonymous" header.
         - Break backward compatibility :P
                 - Fix aes_ctr128 and bump packet version and write
                   unit tests for counter mode.
@@ -153,6 +161,14 @@
                 - Add fields to serverinfo, server directory.
                 - Make client check 'Recommended-Software' against
                   current version.
+        - Release
+                - Note all places that need documentation comments or
+                  additional testing
+                - Check all usage messages
+                - Triage XXXX's
+                - Resolve XXXX's
+                - Bump version numbers
+                - Update README
 
 Originally scheduled for 0.0.3, but delayed:
         - UI