[or-cvs] r14417: When we choose to abandon a new entry guard because we think (in tor/trunk: . src/or)

arma at seul.org arma at seul.org
Tue Apr 22 18:38:25 UTC 2008


Author: arma
Date: 2008-04-22 14:38:25 -0400 (Tue, 22 Apr 2008)
New Revision: 14417

Modified:
   tor/trunk/ChangeLog
   tor/trunk/src/or/connection_or.c
Log:
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.


Modified: tor/trunk/ChangeLog
===================================================================
--- tor/trunk/ChangeLog	2008-04-22 17:44:36 UTC (rev 14416)
+++ tor/trunk/ChangeLog	2008-04-22 18:38:25 UTC (rev 14417)
@@ -37,6 +37,9 @@
       Patch from mwenge.  Fixes bug 646.
     - Correctly notify one-hop connections when a circuit build has
       failed.  Possible fix for bug 669.  Found 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.
 
   o Minor features:
     - Allow separate log levels to be configured for different logging
@@ -46,7 +49,6 @@
     - Add a malloc_good_size implementation to OpenBSD_malloc_linux.c,
       to avoid unused RAM in buffer chunks and memory pools.
     - Downgrade "sslv3 alert handshake failure" message to INFO.
-    - Only log guard node status when guard node status has changed.
     - 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.

Modified: tor/trunk/src/or/connection_or.c
===================================================================
--- tor/trunk/src/or/connection_or.c	2008-04-22 17:44:36 UTC (rev 14416)
+++ tor/trunk/src/or/connection_or.c	2008-04-22 18:38:25 UTC (rev 14417)
@@ -889,7 +889,12 @@
     rep_hist_note_connect_succeeded(conn->identity_digest, now);
     if (entry_guard_register_connect_status(conn->identity_digest,
                                             1, now) < 0) {
-      /* pending circs get closed in circuit_about_to_close_connection() */
+      /* Close any circuits pending on this conn. We leave it in state
+       * 'open' though, because it didn't actually *fail* -- we just
+       * chose not to use it. (Otherwise
+       * connection_about_to_close_connection() will call a big pile of
+       * functions to indicate we shouldn't try it again.) */
+      circuit_n_conn_done(conn, 0);
       return -1;
     }
     router_set_status(conn->identity_digest, 1);



More information about the tor-commits mailing list