[tor-commits] [tor/master] Create TestingDirAuthVoteHSDir like TestingDirAuthVoteExit/Guard

nickm at torproject.org nickm at torproject.org
Sun Jan 11 16:12:10 UTC 2015


commit f9d57473e1ff34f1ec56c62dd9ea138ceec42d6f
Author: teor <teor2345 at gmail.com>
Date:   Sat Jan 10 21:43:31 2015 +1100

    Create TestingDirAuthVoteHSDir like TestingDirAuthVoteExit/Guard
    
    TestingDirAuthVoteHSDir ensures that authorities vote the HSDir flag
    for the listed relays regardless of uptime or ORPort connectivity.
    Respects the value of VoteOnHidServDirectoriesV2.
    
    Partial fix for bug 14067.
---
 changes/bug14067-TestingDirAuthVoteHSDir |    6 ++++++
 doc/tor.1.txt                            |    9 +++++++++
 src/or/config.c                          |    1 +
 src/or/dirserv.c                         |   15 +++++++++++----
 src/or/or.h                              |    5 +++++
 5 files changed, 32 insertions(+), 4 deletions(-)

diff --git a/changes/bug14067-TestingDirAuthVoteHSDir b/changes/bug14067-TestingDirAuthVoteHSDir
new file mode 100644
index 0000000..52d2bee
--- /dev/null
+++ b/changes/bug14067-TestingDirAuthVoteHSDir
@@ -0,0 +1,6 @@
+  o Minor features (authorities, testing):
+    - Create TestingDirAuthVoteHSDir like TestingDirAuthVoteExit/Guard.
+      Ensures that authorities vote the HSDir flag for the listed
+      relays regardless of uptime or ORPort connectivity.
+      Respects the value of VoteOnHidServDirectoriesV2.
+      Partial fix for bug 14067. Patch by "teor".
diff --git a/doc/tor.1.txt b/doc/tor.1.txt
index 9e86a67..7b21453 100644
--- a/doc/tor.1.txt
+++ b/doc/tor.1.txt
@@ -2245,6 +2245,15 @@ The following options are used for running a testing Tor network.
     In order for this option to have any effect, **TestingTorNetwork**
     has to be set.
 
+[[TestingDirAuthVoteHSDir]] **TestingDirAuthVoteHSDir** __node__,__node__,__...__::
+    A list of identity fingerprints and country codes and
+    address patterns of nodes to vote HSDir for regardless of their
+    uptime and ORPort connectivity. See the **ExcludeNodes** option for more
+    information on how to specify nodes.
+ +
+    In order for this option to have any effect, **TestingTorNetwork**
+    and **VoteOnHidServDirectoriesV2** both have to be set.
+
 [[TestingEnableConnBwEvent]] **TestingEnableConnBwEvent** **0**|**1**::
     If this option is set, then Tor controllers may register for CONN_BW
     events.  Changing this requires that **TestingTorNetwork** is set.
diff --git a/src/or/config.c b/src/or/config.c
index 9a37484..a1347b9 100644
--- a/src/or/config.c
+++ b/src/or/config.c
@@ -448,6 +448,7 @@ static config_var_t option_vars_[] = {
   V(TestingCertMaxDownloadTries, UINT, "8"),
   V(TestingDirAuthVoteExit, ROUTERSET, NULL),
   V(TestingDirAuthVoteGuard, ROUTERSET, NULL),
+  V(TestingDirAuthVoteHSDir, 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 d668749..8abe6cb 100644
--- a/src/or/dirserv.c
+++ b/src/or/dirserv.c
@@ -2113,9 +2113,10 @@ set_routerstatus_from_routerinfo(routerstatus_t *rs,
     rs->ipv6_orport = ri->ipv6_orport;
   }
 
-  /* Iff we are in a testing network, use TestingDirAuthVoteExit to
-     give out Exit flags, and TestingDirAuthVoteGuard to
-     give out Guard flags. */
+  /* Iff we are in a testing network, use TestingDirAuthVoteExit,
+     TestingDirAuthVoteGuard, and TestingDirAuthVoteHSDir to
+     give out the Exit, Guard, and HSDir flags, respectively. 
+     But don't set the corresponding node flags. */
   if (options->TestingTorNetwork) {
     if (routerset_contains_routerstatus(options->TestingDirAuthVoteExit,
                                         rs, 0)) {
@@ -2123,9 +2124,15 @@ set_routerstatus_from_routerinfo(routerstatus_t *rs,
     }
 
     if (routerset_contains_routerstatus(options->TestingDirAuthVoteGuard,
-                                      rs, 0)) {
+                                        rs, 0)) {
       rs->is_possible_guard = 1;
     }
+
+    if (routerset_contains_routerstatus(options->TestingDirAuthVoteHSDir,
+                                        rs, 0)) {
+      /* TestingDirAuthVoteHSDir respects VoteOnHidServDirectoriesV2 */
+      rs->is_hs_dir = vote_on_hsdirs;
+    }
   }
 }
 
diff --git a/src/or/or.h b/src/or/or.h
index 58e2164..f3fee8f 100644
--- a/src/or/or.h
+++ b/src/or/or.h
@@ -4105,6 +4105,11 @@ typedef struct {
    * regardless of uptime and bandwidth. */
   routerset_t *TestingDirAuthVoteGuard;
 
+  /** Relays in a testing network which should be voted HSDir
+   * regardless of uptime and ORPort connectivity.
+   * Respects VoteOnHidServDirectoriesV2. */
+  routerset_t *TestingDirAuthVoteHSDir;
+
   /** Enable CONN_BW events.  Only altered on testing networks. */
   int TestingEnableConnBwEvent;
 





More information about the tor-commits mailing list