[tor-commits] [tor/master] Add TestingDirAuthVoteExit option (like TestingDirAuthVoteGuard)

nickm at torproject.org nickm at torproject.org
Wed Oct 8 19:47:33 UTC 2014


commit 27f30040f63d13234d07e58cf3d0d2a3cbd93ce5
Author: teor <teor2345 at gmail.com>
Date:   Wed Oct 1 17:44:21 2014 +1000

    Add TestingDirAuthVoteExit option (like TestingDirAuthVoteGuard)
    
    Add the TestingDirAuthVoteExit option, a list of nodes to vote Exit for,
    regardless of their uptime, bandwidth, or exit policy.
    
    TestingTorNetwork must be set for this option to have any effect.
    
    Works around an issue where authorities would take up to 35 minutes to
    give nodes the Exit flag in a test network, despite short consensus
    intervals. Partially implements ticket 13161.
---
 changes/feature13161-TestingDirAuthVoteExit |    7 +++++++
 doc/tor.1.txt                               |    9 +++++++++
 src/or/config.c                             |    1 +
 src/or/dirserv.c                            |   15 +++++++++++----
 src/or/or.h                                 |    4 ++++
 5 files changed, 32 insertions(+), 4 deletions(-)

diff --git a/changes/feature13161-TestingDirAuthVoteExit b/changes/feature13161-TestingDirAuthVoteExit
new file mode 100644
index 0000000..d6c8f41
--- /dev/null
+++ b/changes/feature13161-TestingDirAuthVoteExit
@@ -0,0 +1,7 @@
+  o Minor features (testing):
+    - Add the TestingDirAuthVoteExit option, a list of nodes to vote
+      Exit for regardless of their uptime, bandwidth, or exit policy.
+      TestingTorNetwork must be set for this option to have any effect.
+      Works around an issue where authorities would take up to 35 minutes
+      to give nodes the Exit flag in a test network, despite short
+      consensus intervals. Partially implements ticket 13161.
diff --git a/doc/tor.1.txt b/doc/tor.1.txt
index ff17819..c0b8c11 100644
--- a/doc/tor.1.txt
+++ b/doc/tor.1.txt
@@ -2197,6 +2197,15 @@ The following options are used for running a testing Tor network.
     Try this often to download a v3 authority certificate before giving up.
     Changing this requires that **TestingTorNetwork** is set. (Default: 8)
 
+[[TestingDirAuthVoteExit]] **TestingDirAuthVoteExit** __node__,__node__,__...__::
+    A list of identity fingerprints, nicknames, country codes and
+    address patterns of nodes to vote Exit for regardless of their
+    uptime, bandwidth, or exit policy. See the **ExcludeNodes**
+    option for more information on how to specify nodes.
+ +
+    In order for this option to have any effect, **TestingTorNetwork**
+    has to be set.
+
 [[TestingDirAuthVoteGuard]] **TestingDirAuthVoteGuard** __node__,__node__,__...__::
     A list of identity fingerprints, nicknames, country codes and
     address patterns of nodes to vote Guard for regardless of their
diff --git a/src/or/config.c b/src/or/config.c
index 921d032..3b37a12 100644
--- a/src/or/config.c
+++ b/src/or/config.c
@@ -439,6 +439,7 @@ static config_var_t option_vars_[] = {
   V(TestingDescriptorMaxDownloadTries, UINT, "8"),
   V(TestingMicrodescMaxDownloadTries, UINT, "8"),
   V(TestingCertMaxDownloadTries, UINT, "8"),
+  V(TestingDirAuthVoteExit, ROUTERSET, NULL),
   V(TestingDirAuthVoteGuard, ROUTERSET, NULL),
   VAR("___UsingTestNetworkDefaults", BOOL, UsingTestNetworkDefaults_, "0"),
 
diff --git a/src/or/dirserv.c b/src/or/dirserv.c
index 374cfa6..c8f47e6 100644
--- a/src/or/dirserv.c
+++ b/src/or/dirserv.c
@@ -2169,12 +2169,19 @@ set_routerstatus_from_routerinfo(routerstatus_t *rs,
     rs->ipv6_orport = ri->ipv6_orport;
   }
 
-  /* Iff we are in a testing network, use TestingDirAuthVoteGuard to
+  /* Iff we are in a testing network, use TestingDirAuthVoteExit to
+     give out Exit flags, and TestingDirAuthVoteGuard to
      give out Guard flags. */
-  if (options->TestingTorNetwork &&
-      routerset_contains_routerstatus(options->TestingDirAuthVoteGuard,
+  if (options->TestingTorNetwork) {
+    if (routerset_contains_routerstatus(options->TestingDirAuthVoteExit,
+                                        rs, 0)) {
+      rs->is_exit = 1;
+    }
+
+    if (routerset_contains_routerstatus(options->TestingDirAuthVoteGuard,
                                       rs, 0)) {
-    rs->is_possible_guard = 1;
+      rs->is_possible_guard = 1;
+    }
   }
 }
 
diff --git a/src/or/or.h b/src/or/or.h
index 54cee46..4130ea6 100644
--- a/src/or/or.h
+++ b/src/or/or.h
@@ -4056,6 +4056,10 @@ typedef struct {
   /** Minimum value for the Fast flag threshold on testing networks. */
   uint64_t TestingMinFastFlagThreshold;
 
+  /** Relays in a testing network which should be voted Exit
+   * regardless of exit policy. */
+  routerset_t *TestingDirAuthVoteExit;
+
   /** Relays in a testing network which should be voted Guard
    * regardless of uptime and bandwidth. */
   routerset_t *TestingDirAuthVoteGuard;





More information about the tor-commits mailing list