[tor-commits] [tor-browser-bundle/master] Bug 15482: Restrict circuit lifetime extension to SOCKS-auth streams.

mikeperry at torproject.org mikeperry at torproject.org
Fri Mar 27 20:06:00 UTC 2015


commit 351ecc463ff860e617e690ec709e80ec76f0be53
Author: Mike Perry <mikeperry-git at torproject.org>
Date:   Fri Mar 27 13:01:45 2015 -0700

    Bug 15482: Restrict circuit lifetime extension to SOCKS-auth streams.
    
    That way people's non-TBB activity won't be affected.
---
 gitian/patches/bug15482.patch |   36 ++++++++++++++++++++++--------------
 1 file changed, 22 insertions(+), 14 deletions(-)

diff --git a/gitian/patches/bug15482.patch b/gitian/patches/bug15482.patch
index 5250fe4..df8a156 100644
--- a/gitian/patches/bug15482.patch
+++ b/gitian/patches/bug15482.patch
@@ -1,29 +1,37 @@
-From a9c7e6dc3508e78f4b296e38603dd34174e2a14c Mon Sep 17 00:00:00 2001
+From 748414784f71126b093aa7466908e00f71a7b046 Mon Sep 17 00:00:00 2001
 From: Mike Perry <mikeperry-git at torproject.org>
-Date: Thu, 26 Mar 2015 22:38:45 -0700
-Subject: [PATCH] Bug 15482: Don't abandon circuits that are still being used
- by TBB.
+Date: Fri, 27 Mar 2015 12:57:37 -0700
+Subject: [PATCH] Bug 15482: Don't abandon circuits that are still in use for
+ browsing.
 
-Reset timestamp_dirty every time we get a new stream request so that circuits
-are not abandoned while still in use.
+Only applies to connections with SOCKS auth set, so that non-web Tor
+activity is not affected.
+
+Simpler version of Nick's patch because the randomness worried me, and I'm not
+otherwise sure why we want a max here.
 ---
- src/or/circuituse.c | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
+ src/or/circuituse.c | 11 +++++++++--
+ 1 file changed, 9 insertions(+), 2 deletions(-)
 
 diff --git a/src/or/circuituse.c b/src/or/circuituse.c
-index d0d31ad..fff46cd 100644
+index d0d31ad..6cce4bf 100644
 --- a/src/or/circuituse.c
 +++ b/src/or/circuituse.c
-@@ -2264,8 +2264,10 @@ connection_ap_handshake_attach_chosen_circuit(entry_connection_t *conn,
+@@ -2264,8 +2264,15 @@ connection_ap_handshake_attach_chosen_circuit(entry_connection_t *conn,
  
    base_conn->state = AP_CONN_STATE_CIRCUIT_WAIT;
  
 -  if (!circ->base_.timestamp_dirty)
 -    circ->base_.timestamp_dirty = time(NULL);
-+  /* For Tor Browser, we want to avoid surprising the user by giving up on
-+   * circuits while they are still being used, so we always reset the
-+   * dirtiness timestamp. */
-+  circ->base_.timestamp_dirty = time(NULL);
++  if (!circ->base_.timestamp_dirty) {
++    circ->base_.timestamp_dirty = approx_time();
++  } else if ((conn->entry_cfg.isolation_flags & ISO_SOCKSAUTH) &&
++             (conn->socks_request->usernamelen ||
++              conn->socks_request->passwordlen)) {
++    /* When stream isolation is in use and controlled by an application
++     * we are willing to keep using the stream. */
++    circ->base_.timestamp_dirty = approx_time();
++  }
  
    pathbias_count_use_attempt(circ);
  



More information about the tor-commits mailing list