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

[minion-cvs] Note state of current work



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

Modified Files:
	TODO 
Log Message:
Note state of current work

Index: TODO
===================================================================
RCS file: /home/minion/cvsroot/src/minion/TODO,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -d -r1.33 -r1.34
--- TODO	2 Dec 2002 10:14:39 -0000	1.33
+++ TODO	7 Dec 2002 04:04:02 -0000	1.34
@@ -18,10 +18,7 @@
 
 	. Server
 		o Fix bug: delivering self->self.
-		- Actual strategy for reporting exceptions vs
-	   	  user-visible errors.
 		- More explicit overview of queues.
-		- Unit tests for various queues.
 		- Unit tests for modulemanger built-in decoding and delivery.
 		- Test code to start 3 or 4 servers on one machine and
                   try sending some messages through.
@@ -36,32 +33,30 @@
 		o Test 'address'.
 		o Check whether exit host supports delivery method
 		o Make address support 0xhex:string
-		- Unit tests for MixminionClient
-		*. Test CLI client
+		o Unit tests for MixminionClient
 		- Document it all
 	. Build
-		- Use sane arguments when testing with multiple python versions
 		- Marginal 'make install'
 		- Marginal 'make dist'
-	- Integration testing
-		- Better log messages at all points throughout system.
-		. Fake delivery module for MBOX-less testing of core
-			*. Test fake delivery module
+	. Integration testing
+		o Better log messages at all points throughout system.
+		o Fake delivery module for MBOX-less testing of core
+			o Test fake delivery module
 		- Automated tests for several servers running on one machine.
 		- Tests for servers on several different machines.
-	. MBox module
+	o MBox module
 		o Implement
-		. Test
+		o Test
 		        o Unit tests
-			- Try it out
+			o Try it out
 	. SMTP-Via-Mixmaster module
 		o Implement
 		o Implement address validation so we don't get into trouble.
 		- Document
-		. Test
+		o Test
 		        o Unit tests
-			- Try it out
-	- Refactor.
+			o Try it out
+	. Refactor.
 	        D Rename 'tag' -> 'decoding handle'.
 		o Make tag a separate field rather than a prefix of 'exitInfo'
 			o Implement.
@@ -71,24 +66,50 @@
 		- Disable 'non-state-carrying' reply blocks.  Rename 'stateful'
 		  (non-state-carrying) and 'stateless' (state-carrying) to
 		  something less contradictory
-		- Triage XXXX, FFFF, ???? for 0.0.1
+		o Triage XXXX, FFFF, ???? for 0.0.1
+		- Fix all {XXXX/FFFF/????}001 
+		- Separate package for server code.
 	- Final license
 	- Documentation
+		. Document all modules, functions, fields, globals
+			o BuildMessage
+			- ClientMain
+			- Common
+			- Config
+			- Crypto
+			- HashLog
+			- MMTPClient
+			- MMTPServer
+			- Main
+			- Modules
+			- Packet
+			- PacketHandler
+			- Queue
+			- ServerInfo
+			- ServerMain
+			- __init__
+			- benchmark
+			- test
+			- testSupport
+		- Comment all tricky/long functions
 		- Contributor's guide
 		- Basic HOWTO
 		- Difference between XXXX FFFF ????
 		- Overall design
+		- More readable mixminiond.conf
 	- Patch specification:
 	  	- SPEC comments from code
 		- Incorporate e2e mixminion design
 		- Rename stateful, stateless SURBs
-	- Separate package for server code.
 
 Required for "1.0":
 	 [These features must be in place before we can take the system out
           of alpha.  We'll do a series of point releases between 0.0.1 and
           the first beta.]
 
+	- Better CLIs
+		- Actual strategy for reporting exceptions vs
+	   	  user-visible errors.
 	- Key rotation and expiry
 		- Automatic keygen as needed
 		- Automatic key rotation
@@ -97,27 +118,27 @@
 	- Security
 		- Make createPrivateDirs gripe about group-writable parent
 		  dirs
-		- Make hashlog code use journaling if underlying dbs are
+		o Make hashlog code use journaling if underlying dbs are
 		  unreliable.
 	- Server core
-		- Clean shutdown
+		- Cleaner shutdown
 		- 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
+			- Full boilerplate text
 		- Move boilerplate into outside files.  Add a generic
 		  'Boilerplate' functionality.
 		- Tell ModuleManager about async code
-		- Support for forking delivery
 		- Real SMTP module
 			- Abuse prevention
+			- Exit filtering support
 			- Support for setting 'Subject' and 'From' lines.
 			- Support multiple exit addresses.
 		- Incoming email gateway
-		- Refactor module manager to do decoding _before_ passing
+		o Refactor module manager to do decoding _before_ passing
 		  payloads to the individual module implementations.
 		- Some notion of 'client modules' would be a good idea.
 		- Put 'address' someplace more reasonable.
@@ -126,7 +147,7 @@
 		- Cap output size to prevent zlib bombing
 	- Configurablity
 	  	- Support for one-side-only MMTP configurations.
-		- Make Mix algorithm configurable
+		- Make batching algorithm configurable
 		o Infer server IP
 		. Freak out properly on missing/unpublishable IP.
 		- Make listening configurable for multiple ports/ips, not
@@ -145,22 +166,24 @@
 		- Generate a reply block
 		- Read message from reply block
 		- Path selection
-			- Understand differing server features
+		        - Automatic path selection
+			. Understand differing server features
 			- Watch out for servers that are really the
 			  same server
 		- Reply to reply block
 		- Examine reply block
 		- Send message to user with known key
-		- Send message to user with known server
+		. Send message to user with known server
 		- Real server directory management
 		- Real PKI
 	        - Queue a bunch of messages at the client level.
+		- Client-side pooling
 	- MMTP / async
 		- Make listen options configurable (backlog, IP)
 		- Code to send junk
 SPEC!!		- Timeout old connections
-		- Test new features
 		- Renegotiate connections
+		- (Make sure sender retries on bogus close)
 		- Session managment and resumption (security issues?)
 		- Tests for all cases:
 			- Junk
@@ -169,19 +192,23 @@
 			- Bad recipients
 			- Hunt down leaks
 	- Build and install process
-		- Get SSL as needed
+		- Use sane arguments when testing with multiple python versions
+		. Get SSL as needed
 		- Well-tested 'make install'
 		- RPMS, debs, and so on
 		- Make sure we run on solaris and *BSD.
 		- "Somebody" should do a Windows port of the client code
 	- Protocol support
 		- External reply block format
-		- End-to-end payload encryption
-		- Reading messages sent to reply blocks
-		- Correct implementation of stateless reply blocks
+		o End-to-end payload encryption
+		. Reading messages sent to reply blocks
+		. Correct implementation of stateless reply blocks
 SPEC		o Patch to address George's 15August attack
-	- Test on other (non-redhat, non-linux) systems
-	- Tests for CLIs
+	- Testing
+		- Test on other (non-redhat, non-linux) systems
+		- Repeatable CLI tests.
+		        - For client
+			- For server
 	- Directories
 		- ServerInfo: complete validation rules
 		- Implementation for directory servers
@@ -237,4 +264,3 @@
   Local Variables:
   mode:text
   End:
-