[or-cvs] first cut of a 0.1.0.1-rc1 changelog

Roger Dingledine arma at seul.org
Sat Mar 26 00:46:05 UTC 2005


Update of /home2/or/cvsroot/tor
In directory moria.mit.edu:/tmp/cvs-serv30222

Modified Files:
	ChangeLog 
Log Message:
first cut of a 0.1.0.1-rc1 changelog


Index: ChangeLog
===================================================================
RCS file: /home2/or/cvsroot/tor/ChangeLog,v
retrieving revision 1.70
retrieving revision 1.71
diff -u -d -r1.70 -r1.71
--- ChangeLog	24 Feb 2005 22:38:33 -0000	1.70
+++ ChangeLog	26 Mar 2005 00:46:02 -0000	1.71
@@ -1,3 +1,191 @@
+Changes in version 0.1.0.1-rc1 - 2005-03-xx
+
+  o New features:
+    - Add reachability testing. Your Tor server will automatically try
+      to see if its ORPort and DirPort are reachable from the outside,
+      and it won't upload its descriptor until it decides they are.
+    - Handle unavailable hidden services better. Handle slow or busy
+      hidden services better.
+    - Add support for CONNECTing through https proxies, with "HttpsProxy"
+      config option.
+    - New exit policy: accept most low-numbered ports, rather than
+      rejecting most low-numbered ports.
+    - More Tor controller support (still experimental). See
+      http://tor.eff.org/doc/control-spec.txt for all the new features,
+      including signals to emulate unix signals from any platform;
+      redirectstream; extendcircuit; mapaddress; getinfo; postdescriptor;
+      closestream; closecircuit; etc.
+    - Make nt services work and start on startup on win32 (based on
+      patch by Matt Edman).
+    - Add a new AddressMap config directive to rewrite incoming socks
+      addresses. This lets you, for example, declare an implicit
+      required exit node for certain sites.
+    - Add a new TrackHostExits config directive to trigger addressmaps
+      for certain incoming socks addresses -- for sites that break when
+      your exit keeps changing.
+    - Redo the client-side dns cache so it's just an addressmap too.
+    - Notice when our IP changes, and reset stats/uptime/reachability.
+    - When an application is using socks5, give him the whole variety of
+      potential socks5 responses (connect refused, host unreachable, etc),
+      rather than just "success" or "failure".
+    - A more sane version numbering system. See
+      http://tor.eff.org/cvs/tor/doc/version-spec.txt for details.
+    - New contributed script "exitlist": a simple python script to
+      parse directories and find tor nodes that exit to listed
+      nodes/ports.
+    - New contributed script "privoxy-tor-toggle" to toggle whether
+      privoxy uses tor. Seems to be configured for debian by default.
+    - Report HTTP reasons to when getting a response from directory
+      servers -- so you can actually know what went wrong.
+    - New config option MaxAdvertisedBandwidth which lets you advertise
+      a low bandwidthrate (to not attract as many circuits) while still
+      allowing a higher bandwidthrate in reality.
+
+  o Robustness/stability fixes:
+    - Make Tor use Niels Provos's libevent instead of its current
+      poll-but-sometimes-select mess.  This will let us use faster async
+      cores (like epoll, kpoll, and /dev/poll), and hopefully work better
+      on Windows too.
+    - pthread support now too. This was forced because when we forked,
+      we ended up wasting a lot of duplicate ram over time. Also switch
+      to foo_r versions of some library calls to allow reentry and
+      threadsafeness.
+    - Better handling for heterogeneous / unreliable nodes:
+      - Annotate circuits w/ whether they aim to contain high uptime nodes
+        and/or high capacity nodes. When building circuits, choose
+        appropriate nodes.
+      - This means that every single node in an intro rend circuit,
+        not just the last one, will have a minimum uptime.
+      - New config option LongLivedPorts to indicate application streams
+        that will want high uptime circuits.
+      - When attaching a stream to a circuit, pay attention to its
+        requirements.
+      - Servers reset uptime when a dir fetch entirely fails. This
+        hopefully reflects stability of the server's network connectivity.
+      - If somebody starts his tor server in Jan 2004 and then fixes his
+        clock, don't make his published uptime be a year.
+      - Reset published uptime when you wake up from hibernation.
+    - Introduce a notion of 'internal' circs, which are chosen without
+      regard to the exit policy of the last hop. Intro and rendezvous
+      circs must be internal circs, to avoid leaking information. Resolve
+      and connect streams can use internal circs if they want.
+    - New circuit pooling algorithm: make sure to have enough circs around
+      to satisfy any predicted ports, and also make sure to have 2 internal
+      circs around if we've required internal circs lately (with high
+      uptime if we've seen that lately).
+    - Split NewCircuitPeriod option into NewCircuitPeriod (30 secs),
+      which describes how often we retry making new circuits if current
+      ones are dirty, and MaxCircuitDirtiness (10 mins), which describes
+      how long we're willing to make use of an already-dirty circuit.
+    - Cannibalize GENERAL circs to be C_REND, C_INTRO, S_INTRO, and S_REND
+      circ as necessary, if there are any completed ones lying around
+      when we try to launch one.
+    - Make hidden services try to establish a rendezvous for 30 seconds,
+      rather than for n (where n=3) attempts to build a circuit.
+    - Change SHUTDOWN_WAIT_LENGTH from a fixed 30 secs to a config option
+      "ShutdownWaitLength".
+    - Try to be more zealous about calling connection_edge_end when
+      things go bad with edge conns in connection.c.
+    - Revise tor-spec to add more/better stream end reasons.
+    - Revise all calls to connection_edge_end to avoid sending "misc",
+      and to take errno into account where possible.
+
+  o Bug fixes:
+    - Fix several double-mark-for-close bugs, e.g. where we were finding
+      a conn for a cell even if that conn is already marked for close.
+    - Make sequence of log messages when starting on win32 with no config
+      file more reasonable.
+    - When choosing an exit node for a new non-internal circ, don't take
+      into account whether it'll be useful for any pending x.onion
+      addresses -- it won't.
+    - Turn addr_policy_compare from a tristate to a quadstate; this should
+      help address our "Ah, you allow 1.2.3.4:80. You are a good choice
+      for google.com" problem.
+    - Make "platform" string in descriptor more accurate for Win32 servers,
+      so it's not just "unknown platform".
+    - Fix an edge case in parsing config options (thanks weasel)
+      if they say "--" on the commandline, it's not an option
+    - Reject odd-looking addresses at the client (e.g. addresses that
+      contain a colon), rather than having the server drop them because
+      they're malformed.
+    - tor-resolve requests were ignoring .exit if there was a working circuit
+      they could use instead.
+    - REUSEADDR on normal platforms means you can rebind to the port
+      right after somebody else has let it go. But REUSEADDR on win32
+      means to let you bind to the port _even when somebody else
+      already has it bound_. So, don't do that on Win32.
+    - Change version parsing logic: a version is "obsolete" if it is not
+      recommended and (1) there is a newer recommended version in the
+      same series, or (2) there are no recommended versions in the same
+      series, but there are some recommended versions in a newer series.
+      A version is "new" if it is newer than any recommended version in
+      the same series.
+
+  o Helpful fixes:
+    - Require BandwidthRate to be at least 20kB/s for servers
+    - When a dirserver causes you to give a warn, mention which dirserver
+      it was.
+    - New config option DirAllowPrivateAddresses for authdirservers.
+      Now by default they refuse router descriptors that have non-IP or
+      private-IP addresses.
+    - Stop publishing socksport in the directory, since it's not
+      actually meant to be public. For compatibility, publish a 0 there
+      for now.
+    - Change DirFetchPeriod/StatusFetchPeriod to have a special "Be
+      smart" value, that is low for servers and high for clients.
+    - If our clock jumps forward by 100 seconds or more, assume something
+      has gone wrong with our network and abandon all not-yet-used circs.
+    - Warn when exit policy implicitly allows local addresses.
+    - If we get an incredibly skewed timestamp from a dirserver mirror
+      that isn't a verified OR, don't warn -- it's probably him that's
+      wrong.
+    - Since we ship our own privoxy on os x, tweak it so it doesn't write
+      cookies to disk and doesn't log each web request to disk. (Thanks
+      to Brett Carrington for pointing this out.)
+    - When a client asks us for a dir mirror and we don't have one,
+      launch an attempt to get a fresh one.
+    - If we're hibernating and we get a sigint, exit immediately.
+    - Add --with-dmalloc ./configure option, to track memory leaks.
+    - And try to free all memory on closing, so we can detect what
+      we're leaking.
+    - Cache local dns resolves correctly even when they're .exit
+      addresses.
+    - Give a better warning when some other server advertises an
+      ORPort that is actually an apache running ssl.
+    - Add "opt hibernating 1" to server descriptor to make it clearer
+      whether the server is hibernating.
+
+
+Changes in version 0.0.9.6 - 2005-03-24
+  o Bugfixes on 0.0.9.x (crashes and asserts):
+    - Add new end stream reasons to maintainance branch. Fix bug where
+      reason (8) could trigger an assert.  Prevent bug from recurring.
+    - Apparently win32 stat wants paths to not end with a slash.
+    - Fix assert triggers in assert_cpath_layer_ok(), where we were
+      blowing away the circuit that conn->cpath_layer points to, then
+      checking to see if the circ is well-formed. Backport check to make
+      sure we dont use the cpath on a closed connection.
+    - Prevent circuit_resume_edge_reading_helper() from trying to package
+      inbufs for marked-for-close streams.
+    - Don't crash on hup if your options->address has become unresolvable.
+    - Some systems (like OS X) sometimes accept() a connection and tell
+      you the remote host is 0.0.0.0:0. If this happens, due to some
+      other mis-features, we get confused; so refuse the conn for now.
+
+  o Bugfixes on 0.0.9.x (other):
+    - Fix harmless but scary "Unrecognized content encoding" warn message.
+    - Add new stream error reason: TORPROTOCOL reason means "you are not
+      speaking a version of Tor I understand; say bye-bye to your stream."
+    - Be willing to cache directories from up to ROUTER_MAX_AGE seconds
+      into the future, now that we are more tolerant of skew. This
+      resolves a bug where a Tor server would refuse to cache a directory
+      because all the directories it gets are too far in the future;
+      yet the Tor server never logs any complaints about clock skew.
+    - Mac packaging magic: make man pages useable, and do not overwrite
+      existing torrc files.
+    - Make OS X log happily to /var/log/tor/tor.log
+
+
 Changes in version 0.0.9.5 - 2005-02-22
   o Bugfixes on 0.0.9.x:
     - Fix an assert race at exit nodes when resolve requests fail.



More information about the tor-commits mailing list