| 
					
				 | 
			
			
				@@ -11,50 +11,95 @@ ARMA    - arma claims 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         D Deferred 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         X Abandoned 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      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 ? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      0.0.8: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+NICK    - Why is the first entry of kill -USR1 a router with a 0 key? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+NICK    - why does common/util.c build-depend on or/or.h ? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+NICK?   - Tors deal appropriately when a newly-verified router has the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          same nickname as another router they know about 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+NICK?   - Add '[...truncated]' or similar to truncated log entries (like the directory 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          in connection_dir_process_inbuf()). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+NICK?   - put ip:port:keyhash in intro points, rendezvous points, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          and hidserv descriptors. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* implement parsing and stuff, but don't switch over the cells until 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  sometime in the future. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+NICK    - unify similar config entries that need to be split. put them 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          into a smartlist, and have things take a smartlist. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        o 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. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        o tor-resolve needs a man page 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        - "AllowUnverifiedRouters" config option 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+NICK      - Parse it into 3 bits 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ARMA      - Consider it when picking nodes for your path 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ARMA    - if there's only one entrynode preference and multiple exit node 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          choices, don't pick the desired entrynode as exit. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        o 'fascistfirewall' option to pick dirservers on port 80 and 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          ORs on port 443. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+NICK      - extend it to take a range of ports 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ARMA    - don't replace options->Address with the resolved one at startup. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          keep the old one and also have a new one. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ARMA    - detect our address right before we make a routerinfo each time? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ARMA    - external IP vs bind-IP 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+NICK    - parse uptime into router->uptime 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        o clients choose nodes proportional to advertised bandwidth 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        o and/or while avoiding unreliable nodes, depending on goals 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        - figure out what to do when somebody asks to extend to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          ip:port:differentkey 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* reject it. assuming this is as dumb as it sounds. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        - make loglevel info less noisy 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        - defining an ORPort isn't necessary anymore, if you use 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          ORAddress:port. Same with DirPort, SocksPort. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* fix is-a-server macro to look at *bindaddress too. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       bug fixes, might be handy: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        - the directory servers complain a lot about people using the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          old key. does 0.0.7 use dirservers before it's pulled down 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          the directory? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         - put expiry date on onion-key, so people don't keep trying 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           old ones that they could know are expired? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* Leave on todo list, see if pre3 onion fixes helped enough.           
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         - should the running-routers list put unverified routers at the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           end? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* Cosmetic, don't do it yet. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         - 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. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        - Tors deal appropriately when a newly-verified router has the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          same nickname as another router they know about 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* not necessary yet. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        - Add a notion of nickname->Pubkey binding that's not 'verification' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* eventually, only when needed 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         - ORs use uniquer default nicknames 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* Don't worry about this for now 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         - Handle full buffers without totally borking 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        - Add '[...truncated]' or similar to truncated log entries (like the directory 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          in connection_dir_process_inbuf()). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      protocol changes and design work: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        - put ip:port in intro points, rendezvous points, and hidserv 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          descriptors. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        - figure out what to do when somebody asks to extend to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          ip:port:differentkey 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* do this eventually, no rush. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       more features, easy: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         - check the date in the http headers, compare for clock skew. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* nick should do this 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         - requiredentrynode vs preferredentrynode 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* nick can do this, and will figure out what it should be called 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         - per-month byte allowances 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        - tor-resolve needs a man page 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        - "AllowUnverifiedRouters" config option 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          - Parse it into a bitvector 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          - Consider it when picking nodes for your path 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* nick will spec something. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         - have a pool of circuits available, cannibalize them 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           for your purposes (e.g. rendezvous, etc). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* hold off on that. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        - node 'groups' that are known to be in the same zone of control 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* nick and roger will talk about it 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        - do resolve before trying to attach the stream 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* don't do this for now. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        - if destination IP is running a tor node, extend a circuit there 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          before sending begin. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* don't do this for now. figure out how enclaves work. but do enclaves soon. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       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. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* nick will look into this. not critical priority. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         - Switch dirservers entries to config lines: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           - read in and parse each TrustedDir config line. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           - stop reading dirservers file. 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -67,15 +112,19 @@ ARMA    - arma claims 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             options.TrustedDirs, and make sure there's a descriptor 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             with that nickname, whose key hashes to the fingerprint, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             and who correctly signed the directory. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* nick will do the above 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           - when fetching a directory, if you want a trusted one, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             choose from the trusteddir list. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             - 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. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* roger will do the above 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         - add a listener for a ui 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* nick chats with weasel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           - and a basic gui 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         - Have clients and dirservers preserve reputation info over 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           reboots. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* continue not doing until we have something we need to preserve 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         - 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 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -90,11 +139,12 @@ ARMA    - arma claims 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           - start counting again if your IP ever changes. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           - never regenerate identity keys, for now. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           - you can set a bit for not-being-an-OR. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        - clients choose nodes proportional to advertised bandwidth 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* no need to do this yet. few people define their ORPort. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         - authdirserver lists you as running iff: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           - he can connect to you 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           - he has successfully extended to you 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           - you have sufficient mean-time-between-failures 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* keep doing nothing for now. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       blue sky: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         - Possible to get autoconf to easily install things into ~/.tor? 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -103,6 +153,7 @@ ARMA    - arma claims 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         . rename/rearrange functions for what file they're in 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         - generalize our transport: add transport.c in preparation for 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           http, airhook, etc transport. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+NICK    - investigate sctp for alternate transport. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 For September: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 NICK    . Windows port 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -117,28 +168,39 @@ NICK    . Windows port 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           - installer 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         - Docs 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          - FAQ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          . FAQ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           o overview of tor. how does it work, what's it do, pros and 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             cons of using it, why should I use it, etc. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           - a howto tutorial with examples 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* put a stub on the wiki 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           o tutorial: how to set up your own tor network 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             - (need to not hardcode dirservers file in config.c) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* this will be solved when we put dirservers in config lines 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          - port forwarding howto for ipchains, etc 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* roger add to wiki of requests 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           . correct, update, polish spec 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           - document the exposed function api? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           o document what we mean by socks. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 NICK    . packages 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           . rpm 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* nick will look at the spec file 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           - find a long-term rpm maintainer 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* roger will start guilting people 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         - code 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           - better warn/info messages 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           o let tor do resolves. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           o extend socks4 to do resolves? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           o make script to ask tor for resolves 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          - write howto for setting up tsocks, socat. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            - including on osx and win32 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          - freecap handling 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           - tsocks 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             o gather patches, submit to maintainer 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* send him a reminder mail and see what's up. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             - intercept gethostbyname and others 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* add this to tsocks 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             o do resolve via tor 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           - redesign and thorough code revamp, with particular eye toward: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             - support half-open tcp connections 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -152,6 +214,7 @@ Other details and small and hard things: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           that it is able to rotate through. (maybe) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         - tie into squid 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         - hidserv offerers shouldn't need to define a SocksPort 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+* figure out what breaks for this, and do it. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         - when the client fails to pick an intro point for a hidserv, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           it should refetch the hidserv desc. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         . should maybe make clients exit(1) when bad things happen? 
			 |