]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
ConsensusParams config option lists key=value params
authorRoger Dingledine <arma@torproject.org>
Tue, 15 Sep 2009 08:40:08 +0000 (04:40 -0400)
committerRoger Dingledine <arma@torproject.org>
Tue, 15 Sep 2009 08:40:08 +0000 (04:40 -0400)
finishes the authority-operator interface side of proposal 167.

doc/tor.1.in
src/or/config.c
src/or/dirserv.c
src/or/or.h

index a0f8e8b0f6146a5425981a3d6f7a93261a50ece9..a5f6fe0f121e7b4060b1414468aa1f2e55cd40a5 100644 (file)
@@ -1,4 +1,4 @@
-.TH TOR 1 "August 2009" "TOR"
+.TH TOR 1 "September 2009" "TOR"
 .SH NAME
 tor \- The second-generation onion router
 .SH SYNOPSIS
@@ -1243,6 +1243,11 @@ When this is set then
 \fBVersioningAuthoritativeDirectory\fP should be set too.
 .LP
 .TP
+\fBConsensusParams \fR\fISTRING\fP
+STRING is a space-separated list of key=value pairs that Tor will
+include in the "params" line of its networkstatus vote.
+.LP
+.TP
 \fBDirAllowPrivateAddresses \fR\fB0\fR|\fB1\fR\fP
 If set to 1, Tor will accept router descriptors with arbitrary "Address"
 elements. Otherwise, if the address is not an IP address or is a private
index 0ec39900885d3d4098f08da14e99d4580b724a0d..d830229d3b13f6011efd8687f77140c7bd2efebc 100644 (file)
@@ -168,6 +168,7 @@ static config_var_t _option_vars[] = {
   V(CircuitIdleTimeout,          INTERVAL, "1 hour"),
   V(ClientDNSRejectInternalAddresses, BOOL,"1"),
   V(ClientOnly,                  BOOL,     "0"),
+  V(ConsensusParams,             STRING,   NULL),
   V(ConnLimit,                   UINT,     "1000"),
   V(ConstrainedSockets,          BOOL,     "0"),
   V(ConstrainedSockSize,         MEMUNIT,  "8192"),
index c4a339738e5eb637f5a80e7b0fb6ea1cf20b4eac..6a88286b10d5ebf386c7a8526c7a6bb7c21edbbe 100644 (file)
@@ -2553,6 +2553,13 @@ dirserv_generate_networkstatus_vote_obj(crypto_pk_env_t *private_key,
   }
   smartlist_sort_strings(v3_out->known_flags);
 
+  if (options->ConsensusParams) {
+    v3_out->net_params = smartlist_create();
+    smartlist_split_string(v3_out->net_params,
+                           options->ConsensusParams, NULL, 0, 0);
+    smartlist_sort_strings(v3_out->net_params);
+  }
+
   voter = tor_malloc_zero(sizeof(networkstatus_voter_info_t));
   voter->nickname = tor_strdup(options->Nickname);
   memcpy(voter->identity_digest, identity_digest, DIGEST_LEN);
index dd940273b28de73cd1cb3f3b0a9d3f4831495ac5..c93b8ed0fd36ff16731fabb41636e44dbb7b4e21 100644 (file)
@@ -2587,6 +2587,10 @@ typedef struct {
   /** Location of bandwidth measurement file */
   char *V3BandwidthsFile;
 
+  /** Authority only: key=value pairs that we add to our networkstatus
+   * consensus vote on the 'params' line. */
+  char *ConsensusParams;
+
   /** The length of time that we think an initial consensus should be fresh.
    * Only altered on testing networks. */
   int TestingV3AuthInitialVotingInterval;