[tor-commits] [tor/master] Fix TestingMinExitFlagThreshold 0

nickm at torproject.org nickm at torproject.org
Tue Dec 23 19:25:49 UTC 2014


commit 083c58f126a4390b96b0e3f14d809502d8702f3d
Author: teor <teor2345 at gmail.com>
Date:   Sat Dec 20 21:42:28 2014 +1100

    Fix TestingMinExitFlagThreshold 0
    
    Stop requiring exits to have non-zero bandwithcapacity in a
    TestingTorNetwork. Instead, when TestingMinExitFlagThreshold is 0,
    ignore exit bandwidthcapacity.
    
    This assists in bootstrapping a testing Tor network.
    Fixes bugs 13718 & 13839.
    Makes bug 13161's TestingDirAuthVoteExit non-essential.
---
 changes/bug13839-fix-TestingMinExitFlagThreshold |    7 +++++++
 src/or/dirserv.c                                 |   24 +++++++++++++++++-----
 2 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/changes/bug13839-fix-TestingMinExitFlagThreshold b/changes/bug13839-fix-TestingMinExitFlagThreshold
new file mode 100644
index 0000000..947614f
--- /dev/null
+++ b/changes/bug13839-fix-TestingMinExitFlagThreshold
@@ -0,0 +1,7 @@
+  o Minor bugfixes:
+    - Stop requiring exits to have non-zero bandwithcapacity in a
+      TestingTorNetwork. Instead, when TestingMinExitFlagThreshold is 0,
+      ignore exit bandwidthcapacity.
+      This assists in bootstrapping a testing Tor network.
+      Fixes bugs 13718 & 13839.
+      Makes bug 13161's TestingDirAuthVoteExit non-essential.
diff --git a/src/or/dirserv.c b/src/or/dirserv.c
index d31bb72..a1d22b0 100644
--- a/src/or/dirserv.c
+++ b/src/or/dirserv.c
@@ -887,12 +887,26 @@ static int
 router_is_active(const routerinfo_t *ri, const node_t *node, time_t now)
 {
   time_t cutoff = now - ROUTER_MAX_AGE_TO_PUBLISH;
-  if (ri->cache_info.published_on < cutoff)
+  if (ri->cache_info.published_on < cutoff) {
     return 0;
-  if (!node->is_running || !node->is_valid || ri->is_hibernating)
+  }
+  if (!node->is_running || !node->is_valid || ri->is_hibernating) {
     return 0;
-  if (!ri->bandwidthcapacity)
+  }
+  /* Only require bandwith capacity in non-test networks, or
+   * if TestingTorNetwork, and TestingMinExitFlagThreshold is non-zero */
+  if (!ri->bandwidthcapacity) {
+    if (get_options()->TestingTorNetwork) {
+      if (get_options()->TestingMinExitFlagThreshold > 0) {
+        /* If we're in a TestingTorNetwork, and TestingMinExitFlagThreshold is,
+         * then require bandwidthcapacity */
+        return 0;
+      }
+    } else {
+      /* If we're not in a TestingTorNetwork, then require bandwidthcapacity */
       return 0;
+    }
+  }
   return 1;
 }
 
@@ -1037,7 +1051,7 @@ directory_fetches_dir_info_later(const or_options_t *options)
 }
 
 /** Return true iff we want to fetch and keep certificates for authorities
- * that we don't acknowledge as aurthorities ourself.
+ * that we don't acknowledge as authorities ourself.
  */
 int
 directory_caches_unknown_auth_certs(const or_options_t *options)
@@ -1498,7 +1512,7 @@ dirserv_compute_performance_thresholds(routerlist_t *rl,
       (unsigned long)guard_tk,
       (unsigned long)guard_bandwidth_including_exits_kb,
       (unsigned long)guard_bandwidth_excluding_exits_kb,
-      enough_mtbf_info ? "" : " don't ");
+      enough_mtbf_info ? "" : " don't");
 
   tor_free(uptimes);
   tor_free(mtbfs);





More information about the tor-commits mailing list