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

[minion-cvs] Minor tweaks for 0.0.4 TODO; still processing my email



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

Modified Files:
	TODO 
Log Message:
Minor tweaks for 0.0.4 TODO; still processing my email

Index: TODO
===================================================================
RCS file: /home/minion/cvsroot/src/minion/TODO,v
retrieving revision 1.83
retrieving revision 1.84
diff -u -d -r1.83 -r1.84
--- TODO	20 Feb 2003 06:38:28 -0000	1.83
+++ TODO	5 Mar 2003 21:37:19 -0000	1.84
@@ -12,201 +12,36 @@
 
 NEEDS TO BE WRITTEN:
 
-For 0.0.3:
-        o Write a list of good introductory projects
-        o Multithreaded server for better network behavior (no 10ms
-          hiccups when receiving; no pauses to shred files or deliver
-          messages.)
-                o Make all C functions use Py_BEGIN_ALLOW_THREADS and
-                  Py_END_ALLOW_THREADS properly.
-                o Make all commonly used Python code threadsafe.
-                o Make Queues threadsafe.
-                        o Design
-                        o Implement
-                        o Rename Queue.py to ServerQueue.py
-                                o Do it
-                                o Come up with install code to scrub
-                                  old Queue.py where found.
-                        o Come up with comments to explain why the
-                          whole thing is threadsafe as used, and
-                          explain what "as used" means.  Add asserts
-                          to check "as used".
-                o Make shredding happen in a separate thread.
-                o Make delivery happen in a separate thread.
-                o Make packet processing happen in a separate thread.
-                o Move message decoding into packet handler thread.
-                o Document
-                o Refactor until sane -- possibly along with
-                  DeliveryQueue refactoring.
-                	o Refactor
-                        o Change tests to test new interfaces
-                        o Remove old interfaces
-                        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.
-                o Processing thread should be thunk-based so it can
-                  do more than handle packets.
-        o Signals
-                o Cleaner shutdown on TERM.
-                        o Implement
-                        o Test
-                o Good reset handling for HUP.
-			o Don't die
-                        o Reset logs
-        X Support maybe (for the alpha cycle only!) to get the mixminion
-          version remotely ????
-        o 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.)
-                o Make 'retry' delivery rates independent and
-                  module-adjustable.
-                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.
-                o Test for validation code
-                o Test for module configuration
-        o Tests for stdout/stderr replacement
-        o MMTP
-                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.
-                        o Advertise protocols in server descriptor.
-                        o Tests
-                o Renegotiate connections
-                        o Implement
-                                o Renegotiate from blocking client
-                                o Renegotiate from nonblocking
-                        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.
-        o Core
-        	o When generating a DROP packet, the payload should
-                  be random, and there should be no tag.
-                        o Implement
-                        o Test
-        o Make ServerInfo more forward-compatible.
-                o Support unrecognized keys
-        o SMTP
-                o Add an extra "this is anonymous" header.
-        o Build/install:
-                o Uninstall support? (Right now, we take a cowardly
-                  approach that may be good enough.)
-                o Perhaps 'make install' should nuke dead files. (Queue.py)
-                o Support people who _do_ have OpenSSL 0.9.7 installed.
-        o Client
-                o Faster (adjustable?) timeout on client connect
-                  failure.
-                        o Implement client timeout (sigalrm?)
-                        o Add configuration options and reasonable default.
-                        o Unit tests
-                o Refactor the heck out of argument parsing.
-                o Add "don't use me for anonymity" boilerplate.
-                o Client support for reply blocks.
-                        o Recheck spec on external reply block format
-                        o Implement external reply block format
-                        o Test external reply block format
-                        o Generate a reply block
-                        o Read message from reply block
-                        o Send message to reply block
-                        o Remember used reply blocks
-                        o Examine reply block
-                        o Use first reply block in a file.
-                        o Refactor and document
-                o Read Base64-encoded messages and zbomb messages.
-                        o Implement backend
-                        o Test backend
-                        o Implement frontend
-                        o Test frontend
-                        o Refactor until clean
-                        o Document
-                o Client-side pooling.
-                	o Design
-                        o Implement
-                        o Test
-                o Make client code multiprocess-safe: locking on
-                  cache (if needed!); locking on pool.
-                        o Move lock functionality into Common.
-                        o Locking on cache
-                        o Locking on pool
-                        o Refactor locking; use only a single lock
-                          for all client functionality.
-        o UI
-                o Make path parsing accept space around the commas and colon.
-                o Make paths print more cleanly.
-                o Better command breakdown for pulling directories.
-        o Break backward compatibility :P
-                o Directories include an "allowable version" section.
-                        o Make client check 'Recommended-Software' against
-                          current version.
-                o Fix aes_ctr128 and bump packet version and write
-                  unit tests for counter mode.
-        o Bugs
-                o mixminion generate-surb > x should work
-        o Release candidate 1
-                o Note all places that need documentation comments or
-                  additional testing.
-                o Check all usage messages
-                o Triage XXXX's
-                o Resolve XXXX003's
-                o Bump version numbers
-                o Update README
-                        o What's new?
-                        o Document how to use new features
-                        o Installation insns for weird OpenSSL situations
-                        o Note that we break backward compatibility
-        o Release
-                o Resolve XXXX003's.
-                o Better (more prominent) error messages when missing
-                  openssl.
-                o Figure out flock problem. at least say, "blocking on
-                  pid #x".
-                o Add 'stop-server', 'reload-server' functions.
-                o Rename 'reload-server'
-                o Come up with way to deal with servers as they
-                  upgrade.
-                o Rename X-server to server-X.
-                o Rename Type-III to Type III.
-                o Better errors when missing pythondev.
-                o Keep building when 'which' is borked.
-                o Go over CVS commit logs for all contents of 'what's
-                  new?'
-
-Originally scheduled for 0.0.3, but delayed:
+For 0.0.4:
         - UI
                 . Good user error reporting strategy.
+                - The error on '-P foo' should be 'path too short',
+                  and not mention legs. (neruaL)
                 - Beautify list-servers output.
                 - Better error message when path+routinginfo won't fit
                   into header.
                 - Better concept of too-short paths.
                 - Change behavior on binary messages; don't dump 'em
                   to terminals.
+                - DELKEYS should work. (neruaL)
+                - Rename 'server' to server-start; keep 'server', but
+                  deprecated.
         - Make ServerInfo more forward-compatible.
                 - Skip sections completely if the version number isn't
                   recognized.
         - Statistics of some kind (with a server: count messages
           received, errors, etc.)
         - Separate error/other log files. ????
+        - MMTP
+                - KEYID should be hash of signing key==hash of
+                  identity key.  (Spec may be incorrect.)
         - Key management:
                 . Ability to generate new serverdesc with old keys.
                 - Ability to notice discrepancies between SD and
                   server configuration.
                 - Consider linewrap protection on server descriptors,
                   if demand warrants.  (None yet.)
+               
         - Security:
         	- Password-protect dirserver keys
                 - Code to generate dummy packets. ????
@@ -319,7 +154,11 @@
                 - A well-tested 'make uninstall'
                 - RPMS, debs, and so on
                 . Make sure we run on solaris and *BSD.
-                - "Somebody" should do a Windows port of the client code
+                - Make the software run under cygwin
+                        - Handle weirdness with directory permissions
+                        - flock
+                        - Installing to relative path
+                - "Somebody" should do a native Windows port of the client code
                         - Build process
                         - Any C porting as necessary
                         - Signal code may need to change.