Browse Source

Let testing networks override ABSOLUTE_MIN_VALUE_FOR_FAST_FLAG

This adds a new option to fix bug 8508 which broke chutney
networks. The bug was introduced by 317d16de.
Nick Mathewson 11 years ago
parent
commit
a660fe6fd5
5 changed files with 16 additions and 0 deletions
  1. 4 0
      changes/bug8408
  2. 5 0
      doc/tor.1.txt
  3. 1 0
      src/or/config.c
  4. 3 0
      src/or/dirserv.c
  5. 3 0
      src/or/or.h

+ 4 - 0
changes/bug8408

@@ -0,0 +1,4 @@
+  o Minor bugfixes:
+    - Allow TestingTorNetworks to override the 4096-byte minimum for the Fast
+      threshold. Otherwise they can't bootstrap until they've observed more
+      traffic. Fixes bug 8508; bugfix on 0.2.4.10-alpha.

+ 5 - 0
doc/tor.1.txt

@@ -2019,6 +2019,11 @@ The following options are used for running a testing Tor network.
     time. Changing this requires that **TestingTorNetwork** is set. (Default:
     10 minutes)
 
+**TestingMinFastFlagThreshold** __N__ **bytes**|**KBytes**|**MBytes**|**GBytes**::
+    Minimum value for the Fast flag.  Overrides the ordinary minimum taken
+    from the consensus when TestingTorNetwork is set. (Default: 0.)
+
+
 SIGNALS
 -------
 

+ 1 - 0
src/or/config.c

@@ -341,6 +341,7 @@ static config_var_t option_vars_[] = {
   V(PerConnBWRate,               MEMUNIT,  "0"),
   V(PidFile,                     STRING,   NULL),
   V(TestingTorNetwork,           BOOL,     "0"),
+  V(TestingMinFastFlagThreshold, MEMUNIT,  "0"),
   V(OptimisticData,              AUTOBOOL, "auto"),
   V(PortForwarding,              BOOL,     "0"),
   V(PortForwardingHelper,        FILENAME, "tor-fw-helper"),

+ 3 - 0
src/or/dirserv.c

@@ -2005,6 +2005,9 @@ dirserv_compute_performance_thresholds(routerlist_t *rl,
       ABSOLUTE_MIN_VALUE_FOR_FAST_FLAG,
       ABSOLUTE_MIN_VALUE_FOR_FAST_FLAG,
       INT32_MAX);
+    if (options->TestingTorNetwork) {
+      min_fast = (int32_t)options->TestingMinFastFlagThreshold;
+    }
     max_fast = networkstatus_get_param(NULL, "FastFlagMaxThreshold",
                                        INT32_MAX, min_fast, INT32_MAX);
     if (fast_bandwidth < (uint32_t)min_fast)

+ 3 - 0
src/or/or.h

@@ -3910,6 +3910,9 @@ typedef struct {
    * of certain configuration options. */
   int TestingTorNetwork;
 
+  /** Minimum value for the Fast flag threshold on testing networks. */
+  uint64_t TestingMinFastFlagThreshold;
+
   /** If true, and we have GeoIP data, and we're a bridge, keep a per-country
    * count of how many client addresses have contacted us so that we can help
    * the bridge authority guess which countries have blocked access to us. */