[tor-commits] [tor/master] Add TestingDirAuthVoteGuard option for specifying relays to vote Guard on.

nickm at torproject.org nickm at torproject.org
Wed Oct 16 15:23:05 UTC 2013


commit fab8fd2c18491440b37b71e140e23e6091bbbe32
Author: Linus Nordberg <linus at torproject.org>
Date:   Mon Oct 7 09:28:44 2013 +0200

    Add TestingDirAuthVoteGuard option for specifying relays to vote Guard on.
    
    Addresses ticket 9206.
---
 changes/bug9206  |    6 ++++++
 doc/tor.1.txt    |    9 +++++++++
 src/or/config.c  |    1 +
 src/or/dirserv.c |    6 ++++++
 src/or/or.h      |    4 ++++
 5 files changed, 26 insertions(+)

diff --git a/changes/bug9206 b/changes/bug9206
new file mode 100644
index 0000000..7acb366
--- /dev/null
+++ b/changes/bug9206
@@ -0,0 +1,6 @@
+  o Minor features (testing):
+
+    - When bootstrapping a test network, few relays get the Guard
+      flag. There is now a new option, TestingDirAuthVoteGuard, which
+      can be used to specify a set of relays which should be voted
+      Guard regardless of uptime or bandwidth. Addresses ticket 9206.
diff --git a/doc/tor.1.txt b/doc/tor.1.txt
index a3751a2..d3a268d 100644
--- a/doc/tor.1.txt
+++ b/doc/tor.1.txt
@@ -2141,6 +2141,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)
 
+**TestingDirAuthVoteGuard** __node__,__node__,__...__::
+    A list of identity fingerprints, nicknames, country codes and
+    address patterns of nodes to vote Guard for regardless of their
+    uptime and bandwidth. 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.
+
 SIGNALS
 -------
 
diff --git a/src/or/config.c b/src/or/config.c
index 985bebd..8647110 100644
--- a/src/or/config.c
+++ b/src/or/config.c
@@ -458,6 +458,7 @@ static config_var_t option_vars_[] = {
   V(TestingDescriptorMaxDownloadTries, UINT, "8"),
   V(TestingMicrodescMaxDownloadTries, UINT, "8"),
   V(TestingCertMaxDownloadTries, UINT, "8"),
+  V(TestingDirAuthVoteGuard, ROUTERSET, NULL),
   VAR("___UsingTestNetworkDefaults", BOOL, UsingTestNetworkDefaults_, "0"),
 
   { NULL, CONFIG_TYPE_OBSOLETE, 0, NULL }
diff --git a/src/or/dirserv.c b/src/or/dirserv.c
index 3243ac4..d30a474 100644
--- a/src/or/dirserv.c
+++ b/src/or/dirserv.c
@@ -26,6 +26,7 @@
 #include "router.h"
 #include "routerlist.h"
 #include "routerparse.h"
+#include "routerset.h"
 
 /**
  * \file dirserv.c
@@ -2705,6 +2706,11 @@ set_routerstatus_from_routerinfo(routerstatus_t *rs,
   } else {
     rs->is_possible_guard = 0;
   }
+  if (options->TestingTorNetwork &&
+      routerset_contains_routerstatus(options->TestingDirAuthVoteGuard,
+                                      rs, 0)) {
+    rs->is_possible_guard = 1;
+  }
 
   rs->is_bad_directory = listbaddirs && node->is_bad_directory;
   rs->is_bad_exit = listbadexits && node->is_bad_exit;
diff --git a/src/or/or.h b/src/or/or.h
index adb4adf..2f0f9eb 100644
--- a/src/or/or.h
+++ b/src/or/or.h
@@ -4065,6 +4065,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 Guard
+   * regardless of uptime and bandwidth. */
+  routerset_t *TestingDirAuthVoteGuard;
+
   /** 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. */





More information about the tor-commits mailing list