| 
					
				 | 
			
			
				@@ -11,39 +11,11 @@ ARMA    - arma claims 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         D Deferred 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         X Abandoned 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-For scalability: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        - Slightly smarter bandwidth management: use link capacity 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          intelligently. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        - Handle full buffers without totally borking 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-For 0.0.8: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      milestone 2: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      misc: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         . refer to things by key: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          o extend cells need ip:port:identitykeyhash. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          o Lookup routers and connections by key digest; accept hex 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            key digest in place of nicknames. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          o Audit all uses of lookup-by-hostname and lookup-by-addr-port 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            to search by digest when appropriate. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          o make sure to use addr/port in cpuworker tasks, because 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            OPs don't have keys. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          o and fix the function comments in rephist 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          o Rep-hist functions need to store info by keyid 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           - also use this in intro points and rendezvous points, and 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             hidserv descs.  [XXXX This isn't enough.] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           - figure out what to do about ip:port:differentkey 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        o ORs connect on demand. attach circuits to new connections, keep 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          create cells around somewhere, send destroy if fail. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        o nickname defaults to first piece of hostname 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        o running-routers list refers to nickname if verified, else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          hash-base64'ed. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        o Mark routers as verified or unverified based on whether 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          running-routers list includes nickname or id hash. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        o put OR uptime in descriptor 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        o name the secret-key directory something to discourage people 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          from mailing their identity key to tor-ops 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      milestone 3: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         - users can set their bandwidth, or we auto-detect it: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           - advertised bandwidth defaults to 10KB 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           o advertised bandwidth is the min of max seen in each direction 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -63,50 +35,54 @@ NICK    - Reputation info needs to give better weight to recent events than 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         - Have clients and dirservers preserve reputation info over 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           reboots. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         - clients choose nodes proportional to advertised bandwidth 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        o authdirserver includes descriptor. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         -  and lists as running iff: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           - he can connect to you 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           - he has successfully extended to you 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           - you have sufficient mean-time-between-failures 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        - Don't accept ORs with nicknames same as verified ORs' nicknames. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        - add new "Middleman 1" config variable? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          o if torrc not found, exitpolicy reject *:* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        o change if(options.ORPort) to what we really mean. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        o same with socksport. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        o get contrib/tor_resolve into the tarball and installed 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          o and working 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      post pre1: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        - Possible to get autoconf to easily install things into ~/.tor? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        o when we sigint tor, the dns/cpuworkers don't intercept sigint? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        - "AcceptOnlyVerifiedRouters" config option? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      docs: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        - faq and doc-wiki 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          - knoppix distro 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          - win32 installer using privoxy's installer 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      bug fixes, necessary: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        - Why is the first entry of kill -USR1 a router with a 0 key? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         - why does common/util.c build-depend on or/or.h ? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        - ORs use uniquer default nicknames 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        - Tors deal appropriately when a newly-verified router has the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          same nickname as another router they know about 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        X 007 can't extend to unverified 008. they will never be able to. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      bug fixes, might be handy: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        - put expiry date on onion-key, so people don't keep trying 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          old ones that they could know are expired? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        - should the running-routers list put unverified routers at the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          end? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        - make advertised_server_mode() ORs fetch dirs more often. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         - if a begin failed due to exit policy, but we believe the IP 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           should have been allowed, switch that router to exitpolicy 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           reject *:* until we get our next directory. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        - make advertised_server_mode() ORs fetch dirs more often. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        - should the running-routers list put unverified routers at the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          end? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        - tor-resolve needs a man page 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        o tor-resolve should make use of cached answers? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        - defining an ORPort isn't necessary anymore, if you use 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          ORAddress:port. Same with DirPort, SocksPort. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        - Tors deal appropriately when a newly-verified router has the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          same nickname as another router they know about 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        - ORs use uniquer default nicknames 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        - Handle full buffers without totally borking 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        - Add '[...truncated]' or similar to truncated log entries (like the directory 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          in connection_dir_process_inbuf()). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      more features, easy: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        - check the date in the http headers, compare for clock skew. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         - requiredentrynode vs preferredentrynode 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         - per-month byte allowances 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        o if using not-socks4a then warn, once. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        o if unverified server then warn, once. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        - add a listener for a ui 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          - and a basic gui 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        - faq and doc-wiki 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          - knoppix distro 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          - win32 installer using privoxy's installer 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        - tor-resolve needs a man page 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        - "AllowUnverifiedRouters" config option 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          - Parse it into a bitvector 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          - Consider it when picking nodes for your path 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        - have a pool of circuits available, cannibalize them 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          for your purposes (e.g. rendezvous, etc). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        o win32 problems with pre1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        o asn.1 issues? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      more features, complex: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        - defining an ORPort isn't necessary anymore, if you use 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          ORAddress:port. Same with DirPort, SocksPort. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        - compress the directory. client sends http header 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          "accept-transfer-encoding: gzip", server might send http header 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          "transfer-encoding: gzip". ta-da. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          - grow a zlib dependency. keep a cached compressed directory. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         - Switch dirservers entries to config lines: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           - read in and parse each TrustedDir config line. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           - stop reading dirservers file. 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -124,17 +100,11 @@ NICK    - Reputation info needs to give better weight to recent events than 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             - which means keeping track of which ones are "up" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           - if you don't need a trusted one, choose from the routerinfo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             list if you have one, else from the trusteddir list. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        - compress the directory. client sends http header 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          "accept-transfer-encoding: gzip", server might send http header 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          "transfer-encoding: gzip". ta-da. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          - grow a zlib dependency. keep a cached compressed directory. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        - Why is the first entry of kill -USR1 a router with a 0 key? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        o don't warn about being unverified if you're not in the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          running-routers list at all. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        - put expiry date on onion-key, so people don't keep trying 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          old ones that they could know are expired? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        - check the date in the http headers, compare for clock skew. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        - add a listener for a ui 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          - and a basic gui 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      blue sky: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        - Possible to get autoconf to easily install things into ~/.tor? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       ongoing: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         . rename/rearrange functions for what file they're in 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -162,7 +132,7 @@ NICK    . Windows port 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             - (need to not hardcode dirservers file in config.c) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           . correct, update, polish spec 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           - document the exposed function api? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          - document what we mean by socks. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          o document what we mean by socks. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 NICK    . packages 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           . rpm 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -174,8 +144,9 @@ NICK    . packages 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           o extend socks4 to do resolves? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           o make script to ask tor for resolves 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           - tsocks 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            - gather patches, submit to maintainer 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            - intercept gethostbyname and others, do resolve via tor 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            o gather patches, submit to maintainer 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            - intercept gethostbyname and others 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            o do resolve via tor 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           - redesign and thorough code revamp, with particular eye toward: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             - support half-open tcp connections 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             - conn key rotation 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -187,8 +158,6 @@ Other details and small and hard things: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         - tor should be able to have a pool of outgoing IP addresses 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           that it is able to rotate through. (maybe) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         - tie into squid 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        - buffer size pool, to let a few buffers grow huge or many buffers 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          grow a bit 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         - hidserv offerers shouldn't need to define a SocksPort 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         - when the client fails to pick an intro point for a hidserv, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           it should refetch the hidserv desc. 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -196,8 +165,6 @@ Other details and small and hard things: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           e.g. clock skew. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         - should retry exitpolicy end streams even if the end cell didn't 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           resolve the address for you 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        - Add '[...truncated]' or similar to truncated log entries (like the directory 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          in connection_dir_process_inbuf()). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         . Make logs handle it better when writing to them fails. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         o Dirserver shouldn't put you in running-routers list if you haven't 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           uploaded a descriptor recently 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -207,7 +174,6 @@ Other details and small and hard things: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         . Scrubbing proxies 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 - Find an smtp proxy? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 . Get socks4a support into Mozilla 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        - Extend by hostname, not by IP. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         - Need a relay teardown cell, separate from one-way ends. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         - Make it harder to circumvent bandwidth caps: look at number of bytes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           sent across sockets, not number sent inside TLS stream. 
			 |