[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[minion-cvs] Configurable, smart retry logic; lots of refactoring; m...
Update of /home/minion/cvsroot/src/minion
In directory moria.mit.edu:/tmp/cvs-serv3319
Modified Files:
TODO
Log Message:
Configurable, smart retry logic; lots of refactoring; more tests.
mixminiond.conf, ServerQueue, Modules, ServerMain, test:
- Add more sophisticated, more configurable retry logic
Modules, ServerQueue, ServerMain, test:
- Refactor queueDeliveryMessage to not have a bogus 'addr' argument.
ServerMain:
- Change OutgoingQueue to contain instances of RelayedPacket, not 2-tuples of
(IPv4Info, Packet).
ServerQueue:
- Remove dead code
test:
- Test payloads for drop messages.
- Test retry logic on server queues.
- Tests for DeliveryPacket methods
- Tests for connection padding and key renegotiation
- Use new queueDeliveryMessage interface
- Fix bug that generated server descs of the form "5 days days"
Index: TODO
===================================================================
RCS file: /home/minion/cvsroot/src/minion/TODO,v
retrieving revision 1.64
retrieving revision 1.65
diff -u -d -r1.64 -r1.65
--- TODO 12 Jan 2003 04:27:19 -0000 1.64
+++ TODO 13 Jan 2003 06:35:52 -0000 1.65
@@ -47,18 +47,20 @@
o Make packet processing happen in a separate thread.
o Move message decoding into packet handler thread.
- Document
- . Refactor until sane -- possibly along with
+ o Refactor until sane -- possibly along with
DeliveryQueue refactoring.
o Refactor
o Change tests to test new interfaces
o Remove old interfaces
- . Re-test all modules by hand.
- - Unit tests for DeliveryPacket's more complex
+ o Remove all users of addr in deliveryqueue
+ o Remove addr from deliveryqueue.
+ o Re-test all modules by hand.
+ o Unit tests for DeliveryPacket's more complex
methods.
o Undaemonize threads; make them get shut
down explicitly so they can't die halfway.
. Test like crazy
- - Signals
+ . Signals
o Cleaner shutdown on TERM.
o Implement
o Test
@@ -71,13 +73,22 @@
- 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
+ . 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.)
- - Make 'retry' delivery rates independent and
+ o Make 'retry' delivery rates independent and
module-adjustable.
- - Make 'drop undeliverable' rate configurable.
+ o Make 'drop undeliverable' rate configurable.
+ o Make retry rates configurable.
+ o For modules
+ o For MMTP
+ 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
- Statistics of some kind (with a server: count messages
received, errors, etc.)
- Separate error/other log files. ????
@@ -109,36 +120,34 @@
- Make all filenames in server config relative to
server home, if not absolute.
. MMTP
- . Code to send junk (connection padding)
+ o Code to send junk (connection padding)
o Implement for client
o Implement for nonblocking client
o Debug server
o Bump protocol version to 0.2
o Implement protocol negotiation.
- - Tests
- . Renegotiate connections
- . Implement
+ o Advertise protocols in server descriptor.
+ o Tests
+ o Renegotiate connections
+ o Implement
o Renegotiate from blocking client
o Renegotiate from nonblocking
- - Server code to find out if clients
- have renegotiated.
- - Test
- D Don't check KEYID if KEYID=Z(20). (Really? The
- spec says so, but I don't think this is a good idea.)
- D Session management and resumption (security
- issues?) Is this really useful for performance?
+ o Test
+ o Don't check KEYID if KEYID=Z(20). (The spec says
+ so, but I don't think this is a good idea. We never
+ generate packets of this form now; this feature may
+ become deprecated with MMTP>0.2.)
o Pick a logical value for listen backlog.
- . Core
- . When generating a DROP packet, the payload should
+ o Core
+ o When generating a DROP packet, the payload should
be random, and there should be no tag.
o Implement
- - Test
+ o Test
- SMTP
- Add an extra "this is anonymous" header.
- 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.
- - Tests for
- ????
Required for "1.0":
@@ -206,13 +215,19 @@
- Path selection
- Watch out for servers that are really the
same server
+ - Only pick from the directory when picking
+ random servers.
- Notice Allow/Deny.
+ - Notice MMTP protocol versions.
- Send message to user with known public key
- Real PKI for end-to-end encryption
- MMTP / async
- "IP" belongs in the MMTP part of the server descriptor.
- Timeout connections more aggressively under higher load.
- Bandwidth throttling
+ - Session management and resumption (security issues?) Is this
+ really useful for performance?
+ - Server code to find out if clients have renegotiated.
- Tests for all cases:
- Junk
- Retry on bogus close.