| 
					
				 | 
			
			
				@@ -24,41 +24,6 @@ x - When we've been idle a long time, we stop fetching server 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     until we've fetched correct ones. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 x - If the client's clock is too far in the past, it will drop (or 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     just not try to get) descriptors, so it'll never build circuits. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  o when we start, remove^Wmark as unusable any entryguards that are listed 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    in excludenodes. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  o Remember the last time we saw one of our entry guards labeled with 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    the GUARD flag. If it's been too long, it is not suitable for use. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    If it's been really too long, remove it from the list. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  o Figure out avoiding duplicate /24 lines 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    o automatically add /16 servers to family 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    D do it in an efficient way. keep a list of something somewhere? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      D The right thing here is to revamp our node selection implementation. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        (Deferred until oprofile says this matters.) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    o make it configurable, so people can turn it on or off. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  o Add script to grep for identical log msgs. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  o Bug 200: disprefer exit nodes for entry, middle. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    o Specify 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    o Implement 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  o Bug 303: block exit from circuits created with create-fast 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    o Specify and document 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    o Implement 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    o Note that we'd like a better speed-bump too. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  o Bug 336: CIRC events should have digests when appropriate. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  o Improve behavior when telling nicknames and digests to controllers. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    We should give digest, and nickname, with indication of whether name is 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    canonical. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    o edmanm likes $DIGEST~nickname for unNamed routers, and 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $DIGEST=nickname for Named routers. So do I. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    o Make the code accept it where we currently ask for the nickname of 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      another server. Semantics should be strict to start ($D=N means, "give 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      me the Named server with digest D named N"; $D~N means "give me a 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      server with digest D named N".  Nothing else matches.) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    o Add ability to selectively send 'long' nicknames on v1 connections. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    o Add a feature to actually turn on the switch. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    o Implement response for ORCONN. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    o As used in responses to getinfo requests? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    o Verify that everything actually does the right thing. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    o Specify everything. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 N - Bug 326: make eventdns thrash less. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 N - Test guard unreachable logic; make sure that we actually attempt to 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -66,12 +31,6 @@ N - Test guard unreachable logic; make sure that we actually attempt to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Make sure that we don't freak out when the network is down. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 N - Clients stop dumping old descriptors if the network-statuses 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     claim they're still valid. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  o If we fail to connect via an exit enclave, (warn and) try again 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    without demanding that exit node. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    o And recognize when extending to the enclave node is failing, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      so we can abandon then too. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  o We need a separate list of "hidserv authorities" if we want to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    retire moria1 from the main list. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 P - Figure out why dll's compiled in mingw don't work right in Winxp. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 P - Figure out why openssl 0.9.8c "make test" fails at sha256t test. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -82,9 +41,6 @@ Items for 0.1.2.x: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     we accept exits for all positions, we leak whether it's an internal 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     circuit at every step. If we accept exits only at the last hop, we 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     reintroduce Lasse's attacks from the Oakland paper. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  o re-enable blossom functionality: let tor servers decide if they 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    will use local search when resolving, or not. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    o Document it. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   - enumerate events of important things that occur in tor, so vidalia can 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     react. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 N   - Backend implementation 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -113,14 +69,9 @@ N - Simplify authority operation 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   - Servers are easy to setup and run: being a relay is about as easy as 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     being a client. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     . Reduce resource load 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      o Come up with good 'nicknames' automatically, or make no-nickname 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        routers workable. [Make a magic nickname "Unnamed" that can't be 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        registered and can't be looked up by nickname.] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 d     - Tolerate clock skew on bridge relays. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 N     - A way to examine router flags from controller. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 d     - A way to adjust router flags from the controller 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      o A way to export server descriptors to controllers 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          o Event for "when did routerdesc last change". 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 d     - a way to pick entries based wholly on extend_info equivalent; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         a way to export extend_info equivalent. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 R     - option to dl directory info via tor 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -181,11 +132,6 @@ x   - Better estimates in the directory of whether servers have good uptime 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       fractional uptime). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       - AKA Track uptime as %-of-time-up, as well as time-since-last-down 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    o Clients should prefer to avoid exit nodes for non-exit path positions. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (bug 200) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      o spec 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      o implement 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     - Have a "Faster" status flag that means it. Fast2, Fast4, Fast8? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 x     - spec 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 d     - implement 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -196,7 +142,6 @@ N   - Later, servers will stop generating new descriptors simply 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   - Critical but minor bugs, backport candidates. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 d   - Failed rend desc fetches sometimes don't get retried. True/false? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    o non-v1 authorities should not accept rend descs. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 R   - support dir 503s better 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       o clients don't log as loudly when they receive them 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       - they don't count toward the 3-strikes rule 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -231,8 +176,6 @@ N   - provide no-cache no-index headers from the dirport? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 M   - rewrite how libevent does select() on win32 so it's not so very slow. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       - Add overlapped IO 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  o Exitlist should avoid outputting the same IP address twice. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Nd- Have a mode that doesn't write to disk much, so we can run Tor on 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     flash memory (e.g. Linksys routers or USB keys). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     o Add AvoidDiskWrites config option. 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -241,7 +184,7 @@ Nd- Have a mode that doesn't write to disk much, so we can run Tor on 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     - stop caching directory stuff -- and disable mmap? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     - more? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-NR- Write path-spec.txt 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+NR. Write path-spec.txt 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   - Packaging 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     - Tell people about OSX Uninstaller 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -415,10 +358,6 @@ R - Streamline how we pick entry nodes. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       ORPort/DirPort.  It should support ranges and bit prefixes (?) too. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       - Parse this. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       - Relay this in networkstatus. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  o smartlist_uniq(): We have at least 3 places that check a smartlist for 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    duplicates and then removes them: networkstatus_parse_from_string(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    sort_version_list(), and router_rebuild_descriptor().  This should probably 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    get its own function that takes a comparator and a delete function. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Future version: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   - Configuration format really wants sections. 
			 |