[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.