| 
					
				 | 
			
			
				@@ -1,14 +1,27 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Changes in version 0.2.1.1-alpha - 2008-06-13 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   o Major features: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    - Modify the list of ciphers advertised by OpenSSL in client mode 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      to even more closely resemble a common web browser.  We cheat a 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      little so that we can advertise ciphers that the locally 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      installed OpenSSL doesn't know about. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - More work on making our TLS handshake blend in: modify the list 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      of ciphers advertised by OpenSSL in client mode to even more 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      closely resemble a common web browser. We cheat a little so that 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      we can advertise ciphers that the locally installed OpenSSL doesn't 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      know about. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     - Start sending "bootstrap phase" status events to the controller, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       so it can keep the user informed of progress fetching directory 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       information and establishing circuits. Also inform the controller 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if we think we're stuck at a particular bootstrap phase. Implements 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       proposal 137. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - Resume using OpenSSL's RAND_poll() for better (and more portable) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      cross-platform entropy collection again. We used to use it, then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      stopped using it because of a bug that could crash systems that 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      called RAND_poll when they had a lot of fds open. It looks like the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      bug got fixed in late 2006. Our new behavior is to call RAND_poll() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      at startup, and to call RAND_poll() when we reseed later only if 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      we have a non-buggy OpenSSL version. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  o Major bugfixes: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - When we choose to abandon a new entry guard because we think our 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      older ones might be better, close any circuits pending on that 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      new entry guard connection. Bugfix on 0.1.2.8-beta; found by lodger. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   o Memory fixes and improvements: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     - Add a malloc_good_size implementation to OpenBSD_malloc_linux.c, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -29,65 +42,45 @@ Changes in version 0.2.1.1-alpha - 2008-06-13 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       patch to their OpenSSL, turn it on to save memory on servers. This 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       patch will (with any luck) get included in a mainline distribution 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       before too long. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - Never use OpenSSL compression: it wastes RAM and CPU trying to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      compress cells, which are basically all encrypted, compressed, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      or both. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   o Minor bugfixes: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    - Stop giving double-close warn when we reject an address for 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      client DNS. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    - Make relay cells written on a connection count as non-padding when 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      tracking how long a connection has been in use. Bugfix on 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      0.2.0.1-alpha.  Spotted by lodger. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    - When we choose to abandon a new entry guard because we think our 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      older ones might be better, close any circuits pending on that 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      new entry guard connection. Bugfix on 0.1.2.8-beta; found by lodger. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     - Stop reloading the router list from disk for no reason when we 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       run out of reachable directory mirrors. Once upon a time reloading 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       it would set the 'is_running' flag back to 1 for them. It hasn't 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       done that for a long time. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     - In very rare situations new hidden service descriptors were 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       published earlier than 30 seconds after the last change to the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      service, with the 30 seconds being the current voodoo saying that 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      a descriptor is stable. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      service. (We currently think that a hidden service descriptor 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      that's been stable for 30 seconds is worth publishing.) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   o Minor features: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     - Allow separate log levels to be configured for different logging 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      domains.  For example, this allows one to log all notices, warnings, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      domains. For example, this allows one to log all notices, warnings, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       or errors, plus all memory management messages of level debug or 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       higher, with: Log [MM] debug-err [*] notice-err file /var/log/tor. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     - Add a couple of extra warnings to --enable-gcc-warnings for GCC 4.3, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       and stop using a warning that had become unfixably verbose under 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       GCC 4.3. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    - Resume using OpenSSL's RAND_poll() for better (and more portable) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      cross-platform entropy collection again. We used to use it, then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      stopped using it because of a bug that could crash systems that 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      called RAND_poll when they had a lot of fds open. It looks like the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      bug got fixed in late 2006. Our new behavior is to call RAND_poll() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      at startup, and to call RAND_poll() when we reseed later only if 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      we have a non-buggy OpenSSL version. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    - Lots of new unit tests. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     - New --hush command-line option similar to --quiet. While --quiet 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       disables all logging to the console on startup, --hush limits the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       output to messages of warning and error severity. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     - Servers support a new URL scheme for consensus downloads that 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       allows the client to specify which authorities are trusted. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       The server then only sends the consensus if the client will trust 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      it. Otherwise a 404 error is sent back. Clients can use this 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      new scheme when the server supports it. Implements proposal 134; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      disabled for now though. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      it. Otherwise a 404 error is sent back. Clients use this 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      new scheme when the server supports it (meaning it's running 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      0.2.1.1-alpha or later). Implements proposal 134. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     - New configure/torrc options (--enable-geoip-stats, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       DirRecordUsageByCountry) to record how many IPs we've served 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       directory info to in each country code, how many status documents 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       total we've sent to each country code, and what share of the total 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       directory requests we should expect to see. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    - Never use OpenSSL compression: it wastes RAM and CPU trying to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      compress cells, which are basically all encrypted, compressed, or 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      both. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     - Use the TLS1 hostname extension to more closely resemble browser 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       behavior. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  o Code simplifications and refactoring: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    - Refactor code using connection_ap_handshake_attach_circuit() to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      allow that function to mark connections for close. Part of a fix 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      for bug 617. Bugfix on 0.2.0.1-alpha. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - Lots of new unit tests. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     - Add a macro to implement the common pattern of iterating through 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       two parallel lists in lockstep. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |