[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[minion-cvs] Refactor ServerMain; debug the universe.
Update of /home/minion/cvsroot/src/minion
In directory moria.seul.org:/tmp/cvs-serv20327
Modified Files:
TODO
Log Message:
Refactor ServerMain; debug the universe.
Common.py:
Debug createPrivateDirs
Config.py:
Link ModuleManager to ServerConfig
Crypto.py:
More inlining in lioness_encrypt
Change default e from 65535 to 65537
Debug and tune shuffle
Optimize the heck out of PRNG.getInt
Optimize getFloat a bit.
MMTPServer.py:
Add FFFFs
Modules.py:
Add more comments
Make modules provide their own delivery queues; add a couple of
helper classes to make this easier.
Add 'immediate delivery' null-object queue for modules that don't
want to queue.
Debug module loading
Improve queueing and delivery
Queue.py:
Switch to createPrivateDir
Debug queueObject
Remove retryAt logic from DeliveryQueue: messages now get retried
at every opportunity
Remove timing logic from MixQueue
Debug *MixQueue
ServerInfo.py:
Rename ServerKeys to ServerKeyset
ServerMain.py: Refactor completely.
ServerKeyring now holds all of the server's key info
IncomingQueue, OutgoingQueue, Mix, and _MMTPConnection now encapsulate
the internal processing logic
MixminionServer is now a small class.
benchmark.py:
Add timing for shuffle
Make benchmark code run again (It was broken long ago by changes
to ServerInfo and _minionlib)
test.py:
Replace mktemp with a secure, paranoid replacement that can clean
up after itself; remove all old clean-up stuff.
getFloat no longer takes an arg
Tests for shuffle
Tests for Queue.queueObject
Tests for DeliveryQueue
Tests for *MixQueue
Cache 2048-bit RSA key; don't generate too many of those!
Tests for ModuleManager
Index: TODO
===================================================================
RCS file: /home/minion/cvsroot/src/minion/TODO,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- TODO 12 Aug 2002 18:12:24 -0000 1.14
+++ TODO 19 Aug 2002 15:33:49 -0000 1.15
@@ -5,57 +5,76 @@
* Top priority
. Partially done
o Done
+ X Abandoned
NEEDS TO BE WRITTEN
FOR 0.0.1: (The first alpha)
- - Refactor brokenness
- - Key sets are their own class
- - Queue sets are their own class
- - A server is its own class, and has a better method breakdown
- - Clean out deleted stuff every so often
+ *. Refactor brokenness
o Configuration stuff should go into servermain/clientmain.
Forget this broken system of today.
o Reset logic should also go into servermain/clientmain.
o Document changes to Queue, MMTPServer
- . Document and refactor ModuleManager (it needs to know about
- queues).
- - Make individualized queues into special classes.
- . DeliveryQueue
- - Tests for Queue.*Object*
+ o DeliveryQueue
+ o Tests for Queue.*Object*
o Implement
+ o Change to be dumber about time.
o Document
- - Test
- . MixQueue
+ o Test
+ o MixQueue
o Implement
- - Test
- - Document all changes; resolve XXXXs
+ o Test
+ o Document and refactor ModuleManager (it needs to know about
+ queues).
+ o Document
+ o Add queues
+ o Test
+ o Make Timing run again
+ o Make slow stuff suck less.
+ X "Enabled" should leave config
+ o Key sets are their own class
+ o Make individual queues into special classes.
+ o A server is its own class, and has a better method breakdown
+ o Clean out deleted stuff every so often
+ *- Document all changes; resolve XXXXs
o Need hooks for undeliverable messages in MMTPServer.
+ o Not even test should really use mktemp.
. Module system
o Stub classes
o Modules are configurable
- . Modules are loadable
+ o Modules are loadable
o Implement
- - Test
- . Modules are self-descibing
+ o Test
+ o Modules are self-describing
o Implement
- - Test
+ o Test
*. MBox module
- *- Implement
+ o Implement
*- Test
- *- Server
- . Main loop for server
- . Startup, config
- . Load keys
- . Receive messages
- . Process messages
- - Deliver MBOX messages.
- - Better debugging logs
+ *. Server
+ o Main loop for server
+ *. Startup, config
+ o Load keys
+ o Receive messages
+ o Process messages
+ o Deliver MBOX messages.
o Design directory layout
+ - Unit test for keyset and various queues.
+ - Better debugging logs
+ - Test code to start 3 or 4 servers on one machine and
+ try sending some messages through.
+
+ - Add traceback-dumping functionality to Log class.
+ (When did trceback.py get added to Python?)
+ - Better log messages at all points throughout system.
+ - Move boilerplate into outside files. Add a generic 'Boilerplate'
+ functionality.
+ - Test createPrivateDir
+ - Support for one-side-only MMTP configurations.
+ - Make Mix algorithm configurable
*- CLI for server
*- Run server
*- Generate future key/publish to dirserver
-
- CLI client
- Send a message
- Generate a message
@@ -67,6 +86,8 @@
- Infer IP
- Validation function for client
- Validation function for server
+ - Example config
+ - Rename versions to 0.1.
- Clean shutdown for server
- MMTP
. Tests for all cases:
@@ -80,6 +101,7 @@
- End-to-end payload encryption, if we ever agree on a spec.
SPEC - Reading messages sent to reply blocks
- Versioning :)
+ - make sure all FFFF and ???? and XXXX are on this list.
FOR 0.0.2: (The first hacker release)
- Key rotation and expiry
@@ -90,13 +112,16 @@
- Very clean build process
- Get SSL as needed
- RPMS
+ - Configurable mix rules.
+ - Drop undeliverable messages
- Key management
- Test on other (non-redhat, non-linux) systems
- Final license
- Handle HUPs sensibly
SPEC!! - Key rotation
-SPEC - Publishing to directory servers
-SPEC - Downloading from directory servers
+ - Generate new keys as needed
+ - Publishing to directory servers
+ - Downloading from directory servers
- Basic HOWTO and documentation
FOR 0.0.3: (First non-guru release)