[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[minion-cvs] Check in pending work including fragments and bugfixes.



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

Modified Files:
	README TODO setup.py 
Log Message:
Check in pending work including fragments and bugfixes.

setup.py, README, __init__.py: 
- Bump version to 0.0.5alpha2.

BuildMessage: 
- Refactor message construction code to support fragment-then-build-packets
  path.
- Change decodePayload to return SingletonPayload or FragmentPayload.
- Remove an extraneous sha1() from payload decoding.

ClientMain:
- Minimal, kludged-up support for sending fragmented forward messages.
- Remove obsolete client queue code.

Common: 
- Clean up 'bad mode' error message
- Add check for [...] in basee64-encoded data.

Config:
- Add _parseSize to allow configuration files with values like "1M", "100K",
  etc.
- Check whether the user accidentally passes mixminiond.conf to a client.

Crypto:
- Make 'openNewFile' even more paranoid.
- List failing entropy sources when none is found.

Filestore:
- Add delItem to journaled DB.
- Catch corrupted data in file stores.

Fragments: 
- Debug, appease pychecker.

Main:
- Add missing parenthesis

Packet:
- Add notion of tag-less delivery types. (FRAGMENT)
- Renane 'Message' to 'Packet', which it should have been all along.
- Move uncompression logic from decodePayload into SingletonPayload.
- Add encoding for fragmentation of messages that will be decoded at the
  exit node.
- Add 'Message-type: fragmented' for text-encoded messages.
- Check for overlong mail headers and bad from addresses when sending.

benchmark:
- Debug.
- Add some more timing.

test:
- Add tests for catching [...] in base64'd data
- Add tests for sending bad email headers.
- Use new interface from BuildMessage.
- Propagate other new interfaces.
- Add tests for _parseSize.
- More fragment reassembly tests

MMTPServer:
- Change shutdown logic again.  This may be what finally kills our
  infinite busy-loop bug.
- Appease pychecker.

Modules: 
- Add .close() and .sync() methods to modules.
- Add delivery module to reassemble fragmented messages, and relay them on
  to other delivery modules.
- Implement limits on message sizes.

PacketHandler:
- Stop calling packets messages.
- Add 'getDecodedPayload' interface to DeliveryPacket; add fragments.

ServerKeys, ServerMain:
- Change some errors to UIError, drop some dead code.

ServerQueue: 
- Handle corrupted messages on disk.

mixminiond.conf, Modules, ServerInfo:
- Add MaximumSize to module configuration
- Add configuration and capabilities for fragment reconstruction.



Index: README
===================================================================
RCS file: /home/minion/cvsroot/src/minion/README,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -d -r1.52 -r1.53
--- README	13 Jul 2003 03:45:33 -0000	1.52
+++ README	21 Aug 2003 21:34:01 -0000	1.53
@@ -1,6 +1,6 @@
 $Id$
 ======================================================================
-This is Mixminion version 0.0.5, from the Mixminion CVS repository.
+This is Mixminion version 0.0.5alpha, from the Mixminion CVS repository.
 
 CONTENTS:
         I.    Overview

Index: TODO
===================================================================
RCS file: /home/minion/cvsroot/src/minion/TODO,v
retrieving revision 1.143
retrieving revision 1.144
diff -u -d -r1.143 -r1.144
--- TODO	18 Aug 2003 00:41:10 -0000	1.143
+++ TODO	21 Aug 2003 21:34:01 -0000	1.144
@@ -56,24 +56,11 @@
         o Change descriptors to accept YYYY-MM-DD.
                 o Implement
                 o Test
-        . Initial support for email headers (client side)
+        o Initial support for email headers (client side)
                 o Implement
-                - Give error messages on bad headers
-                - Test
-        . Support for large messages and K-of-N in fwd messages
-                o fec backend code
-                o Tests and timing for fec backend
-                . Common fragment-pool code
-                        o Implement
-                        o Test fragmentation
-                        - Test reassembly
-                - Fragment genration code for client
-                - Fragment-pool logic for server
-                - FRAG routing type
-                - Advertise fragment reassembly in server descriptors
-                - Check server descriptors when fragmenting
-                - Tests
-        . UI improvements:
+                o Give error messages on bad headers
+                o Test
+        o UI improvements:
                 o If we can't read serverdescs on startup, suggest a
                   server-DELKEYS.
                 o Quiet server startup; should be by default if daemon
@@ -82,44 +69,78 @@
                          o Implement
                          o Test
                 o Generate random-length paths.
-                - Give a reasonable error when client is passed
+                o 'Iffy mode' messages are confusing.
+                o Give a reasonable error when client is passed
                   server configuration.
-                - Audit exceptions: which should be UIError?
-                - 'Iffy mode' messages are confusing.
-                - SSL's "Unexpected error: wrong version number"
-                  message is confusing.
-        - Tests
-                - Tests for online key rotation
-                - Tests for ServerInbox and Directory.py
-                - Tests for checkConsistency
-                - What happens when Overlap > Lifetime?
+                o Audit exceptions: which should be UIError?
+        . Support for large messages and K-of-N in fwd messages
+                o fec backend code
+                o Tests and timing for fec backend
+                o FRAGMENT routing type
+                o Common fragment-pool code
+                        o Implement
+                        o Test fragmentation
+                        o Test reassembly
+                o Minimal fragment generation code for client
+                o Fragment-pool logic for server
+                o Advertise fragment reassembly in server descriptors
+                o Check server descriptors when fragmenting
+                - Tests
+                        - Client-side fragmentation
+                        - Server-side reassembly in pools
+                        - Message-size maxima
+                        - Cleaning out dead messages
         . Bugfixes
                 o Make AttemptedRelay ~~ SuccessfulRelay+FailedRelay.
+                o Solve CPU infinite loop bug
+                o Notice [...]s in test encoded messages
+                o Handle corrupt pickled data
                 - Handle server time moving backward
-                - Solve CPU infinite loop bug
+        - Installer and distribution
+                - Include man page.
+        - Release
+                - Fix all XXXX005 and DOCDOC comments
+                - Redact E2E-spec.txt
+                - Update README
+                - Manually test all new functionality
+                - Manually test all old functionality
+                - Test old servers with new client code
+                - Test old clients with new servers
 
 For 0.0.6:
-        - Dummies and pinging
-        - Rudimentary MIME support (content-type, content-encoding
-          only.)
+        - Infrastructure -- low level
+                - Generic 'encrypted storage' abstraction for
+                  singleton pickled objects.
+        - Infrastructure -- high level
+                - Servers need to download and use directories
+                - Refactor ClientMain to use a standard ClientAPI module.
+                        - Port ClientAPI from C API document.
+                - Rewrite ClientMain path generation to do the right
+                  thing with multi-packet messages
         . UI improvements:
                 - Notice when out of disk space, die more cleanly.
                   (support max-disk-usage).
+                - Separate 'mixminiond' wrapper; 'mixminiond' confuses folk.
                 - List servers by nickname, not by IP.
-        - Refactor ClientMain to use a standard ClientAPI module.
-        - Servers need to download and use directories
-        - Servers redirect to latest IP if old IP is down.  (Dynamic
-          IP support, after a fashion)
-        - Large replies and efwd messages
-                - Relay non-FRAG fragment messages
+                - RFC822 interface and maildir-style exit module to help
+                  integrators.
+                - SSL's "Unexpected error: wrong version number"
+                  message is confusing.
+        - Dummies and pinging
+        - Large reply messages and efwd messages
+                - Relay non-FRAGMENT fragment messages
                 - Send logic for client
                 - Fragment-pool logic for client
-        - Full Windows client-side support
+        - Full windows client-side support
                 - Address everything on Itamar's non-blocking
                   incompatibility list.
                 - Installer
                 - Instructions
-        - RFC822 interface and maildir-style exit module to help integrators
+        - Rudimentary MIME support (content-type, content-encoding only.)
+        - Dynamic IP support
+                - Change IPv4/IPv6 delivery methods to use DNS if desired.
+                - Servers redirect to latest IP if old IP is down.  (Dynamic
+                  IP support, after a fashion)
         - Make 'SIGHUP' reload, (and 'SIGUSR' dump).
                 - SIGHUP should reconfigure everything:
                         - Logs
@@ -142,6 +163,11 @@
                   in a row.
                 - Change pathgen to avoid using same node for entry
                   and exit?
+        - Delayed Tests
+                - Tests for online key rotation
+                - Tests for ServerInbox and Directory.py
+                - Tests for checkConsistency
+                - What happens when Overlap > Lifetime?
 
 
 Require for "0.1.0" (the in-theory-as-good-as-type-II release):
@@ -166,8 +192,6 @@
                 - Real SMTP module
                         - Abuse prevention of some undetermined kind.
                         X Support for setting 'Subject' and 'From' lines.
-                        - Support for setting 'Subject' line.  (Maybe
-                          content-type, too?)
                         - Support multiple exit addresses. (cc, bcc, etc.)
                           Needs to be bandwidth-limited.
         - End-to-end issues
@@ -185,6 +209,8 @@
                 . Full validation function for server
                 - No support for non-clique topologies
         - Client support
+                - Automatically remove old messages from client queue.
+                - Flush messages to a single mix.   
                 - Support to remove servers from imported set, or to block
                   servers from directory.
                 - Avoid timing distinguishability attack related to
@@ -265,6 +291,8 @@
                 - Servers should use downloaded directories to print useful
                   nicknames for other servers rather than just IP addresses.
         - Port to Twisted, if reasonable (see HACKING)
+        - Send/receive large messages without having to suck them all
+          into RAM at once.
         - MMTP / async
                - Make MMTP bursty
                - Tests for all cases:

Index: setup.py
===================================================================
RCS file: /home/minion/cvsroot/src/minion/setup.py,v
retrieving revision 1.73
retrieving revision 1.74
diff -u -d -r1.73 -r1.74
--- setup.py	28 Jul 2003 01:01:12 -0000	1.73
+++ setup.py	21 Aug 2003 21:34:01 -0000	1.74
@@ -6,9 +6,9 @@
 #
 #   Current Mixminion version
 #
-VERSION = '0.0.5alpha1'
+VERSION = '0.0.5alpha2'
 # System: 0==alpha, 50==beta, 98=pre, 99==release candidate, 100==release
-VERSION_INFO = (0,0,5,0,1)
+VERSION_INFO = (0,0,5,0,2)
 
 # Check the version.  We need to make sure version_info exists before we
 # compare to it: it was only added as of Python version 1.6.