]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Turn off LearnCircuitBuildTimeout when tor2web mode is on
authorRobert Ransom <rransom.8774@gmail.com>
Tue, 14 Jun 2011 08:40:02 +0000 (01:40 -0700)
committerNick Mathewson <nickm@torproject.org>
Wed, 30 Nov 2011 19:54:15 +0000 (14:54 -0500)
src/or/config.c

index 734efdf74e2e187b2237f2d9175ecc1be7731e9e..1dd5ed72c4ef0ae631ecbdc63bdb39f956960006 100644 (file)
@@ -3524,6 +3524,24 @@ options_validate(or_options_t *old_options, or_options_t *options,
     options->RendPostPeriod = MAX_DIR_PERIOD;
   }
 
+  if (options->Tor2webMode && options->LearnCircuitBuildTimeout) {
+    /* LearnCircuitBuildTimeout and Tor2webMode are incompatible in
+     * two ways:
+     *
+     * - LearnCircuitBuildTimeout results in a low CBT, which
+     *   Tor2webMode's use of one-hop rendezvous circuits lowers
+     *   much further, producing *far* too many timeouts.
+     *
+     * - The adaptive CBT code does not update its timeout estimate
+     *   using build times for single-hop circuits.
+     *
+     * If we fix both of these issues someday, we should test
+     * Tor2webMode with LearnCircuitBuildTimeout on again. */
+    log_notice(LD_CONFIG,"Tor2webMode is enabled; turning "
+               "LearnCircuitBuildTimeout off.");
+    options->LearnCircuitBuildTimeout = 0;
+  }
+
   if (options->MaxCircuitDirtiness < MIN_MAX_CIRCUIT_DIRTINESS) {
     log_warn(LD_CONFIG, "MaxCircuitDirtiness option is too short; "
              "raising to %d seconds.", MIN_MAX_CIRCUIT_DIRTINESS);