]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Turn ConsensusParams into a Linelist
authorRoger Dingledine <arma@torproject.org>
Thu, 22 Oct 2020 07:07:09 +0000 (03:07 -0400)
committerRoger Dingledine <arma@torproject.org>
Thu, 22 Oct 2020 07:26:03 +0000 (03:26 -0400)
Make it possible to specify multiple ConsensusParams torrc
lines.

Now directory authority operators can for example put the
main ConsensusParams config in one torrc file and then add to it
from a different torrc file.

Closes ticket 40164.

changes/ticket40164 [new file with mode: 0644]
doc/tor.1.txt
src/feature/dirauth/dirauth_options.inc
src/feature/dirauth/dirvote.c

diff --git a/changes/ticket40164 b/changes/ticket40164
new file mode 100644 (file)
index 0000000..206ebef
--- /dev/null
@@ -0,0 +1,6 @@
+  o Minor features:
+    - Make it possible to specify multiple ConsensusParams torrc lines.
+      Now directory authority operators can for example put the main
+      ConsensusParams config in one torrc file and then add to it from
+      a different torrc file. Closes ticket 40164.
+
index f2a1aceb2ff493ada85be0eccceaca61b438e850..3dc8c7a034ff5db1de3e9c0ee5d90f3e45acd992 100644 (file)
@@ -3014,7 +3014,8 @@ on the public Tor network.
 
 [[ConsensusParams]] **ConsensusParams** __STRING__::
     STRING is a space-separated list of key=value pairs that Tor will include
-    in the "params" line of its networkstatus vote.
+    in the "params" line of its networkstatus vote. This directive can be
+    specified multiple times so you don't have to put it all on one line.
 
 [[DirAllowPrivateAddresses]] **DirAllowPrivateAddresses** **0**|**1**::
     If set to 1, Tor will accept server descriptors with arbitrary "Address"
index 21f4996c39e43536dbf86e3061062688176769fc..2aa07a6c88df3fe893d7426465fb351f7250a71a 100644 (file)
@@ -46,7 +46,7 @@ CONF_VAR(AuthDirTestEd25519LinkKeys, BOOL, 0, "1")
 
 /** Authority only: key=value pairs that we add to our networkstatus
  * consensus vote on the 'params' line. */
-CONF_VAR(ConsensusParams, STRING, 0, NULL)
+CONF_VAR(ConsensusParams, LINELIST, 0, NULL)
 
 /** Authority only: minimum number of measured bandwidths we must see
  * before we only believe measured bandwidths to assign flags. */
index 79651563b409e23282244e523b9e58a2475f0025..828ecbc3724b610328997d12341127aba9307008 100644 (file)
@@ -4709,9 +4709,12 @@ dirserv_generate_networkstatus_vote_obj(crypto_pk_t *private_key,
   smartlist_sort_strings(v3_out->known_flags);
 
   if (d_options->ConsensusParams) {
+    config_line_t *paramline = d_options->ConsensusParams;
     v3_out->net_params = smartlist_new();
-    smartlist_split_string(v3_out->net_params,
-                           d_options->ConsensusParams, NULL, 0, 0);
+    for ( ; paramline; paramline = paramline->next) {
+      smartlist_split_string(v3_out->net_params,
+                             paramline->value, NULL, 0, 0);
+    }
     smartlist_sort_strings(v3_out->net_params);
   }
   v3_out->bw_file_headers = bw_file_headers;