summaryrefslogtreecommitdiff
path: root/src/or
diff options
context:
space:
mode:
authorteor <teor2345@gmail.com>2015-01-10 21:43:31 +1100
committerteor <teor2345@gmail.com>2015-01-10 22:34:28 +1100
commitf9d57473e1ff34f1ec56c62dd9ea138ceec42d6f (patch)
tree726c49430523377ff857706fc73302059b93dd9c /src/or
parente136606fe8325140f26dda26d2f634961aae5448 (diff)
downloadtor-f9d57473e1ff34f1ec56c62dd9ea138ceec42d6f.tar.gz
tor-f9d57473e1ff34f1ec56c62dd9ea138ceec42d6f.zip
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.
Diffstat (limited to 'src/or')
-rw-r--r--src/or/config.c1
-rw-r--r--src/or/dirserv.c15
-rw-r--r--src/or/or.h5
3 files changed, 17 insertions, 4 deletions
diff --git a/src/or/config.c b/src/or/config.c
index 9a374847d7..a1347b9d7d 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 d668749c5b..8abe6cb778 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 58e2164665..f3fee8fc73 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;