]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Use an internal variable for HiddenServiceStatistics
authorDavid Goulet <dgoulet@torproject.org>
Fri, 27 Jan 2017 14:32:05 +0000 (09:32 -0500)
committerNick Mathewson <nickm@torproject.org>
Wed, 1 Feb 2017 14:29:53 +0000 (09:29 -0500)
Stop modifying the value of our torrc option HiddenServiceStatistics just
because we're not a bridge or relay. This bug was causing Tor Browser users to
write "HiddenServiceStatistics 0" in their torrc files as if they had chosen
to change the config.

Fixes #21150

Signed-off-by: David Goulet <dgoulet@torproject.org>
changes/bug21150 [new file with mode: 0644]
src/or/config.c
src/or/or.h

diff --git a/changes/bug21150 b/changes/bug21150
new file mode 100644 (file)
index 0000000..6a8b4f9
--- /dev/null
@@ -0,0 +1,5 @@
+  o Minor bugfixes (config, hidden service): 
+    - Stop modifying the value of our torrc option HiddenServiceStatistics
+      just because we're not a bridge or relay. Use an internal value for what
+      tor should use and keep the torrc option intact. Fixes bug 21150; bugfix
+      on tor-0.2.6.2-alpha.
index d0ca561e1ff4f99f93249ba76ccb17927168c78c..5e7fd6de4bb622bc600e03c02b97eec1df992aef 100644 (file)
@@ -358,7 +358,7 @@ static config_var_t option_vars_[] = {
   VAR("HiddenServiceMaxStreams",LINELIST_S, RendConfigLines, NULL),
   VAR("HiddenServiceMaxStreamsCloseCircuit",LINELIST_S, RendConfigLines, NULL),
   VAR("HiddenServiceNumIntroductionPoints", LINELIST_S, RendConfigLines, NULL),
-  V(HiddenServiceStatistics,     BOOL,     "1"),
+  VAR("HiddenServiceStatistics", BOOL,     HiddenServiceStatistics_option, "1"),
   V(HidServAuth,                 LINELIST, NULL),
   V(CloseHSClientCircuitsImmediatelyOnTimeout, BOOL, "0"),
   V(CloseHSServiceRendCircuitsImmediatelyOnTimeout, BOOL, "0"),
@@ -2004,6 +2004,8 @@ options_act(const or_options_t *old_options)
   /* Only collect directory-request statistics on relays and bridges. */
   options->DirReqStatistics = options->DirReqStatistics_option &&
     server_mode(options);
+  options->HiddenServiceStatistics =
+    options->HiddenServiceStatistics_option && server_mode(options);
 
   if (options->CellStatistics || options->DirReqStatistics ||
       options->EntryStatistics || options->ExitPortStatistics ||
@@ -2018,7 +2020,6 @@ options_act(const or_options_t *old_options)
       options->CellStatistics = 0;
       options->EntryStatistics = 0;
       options->ConnDirectionStatistics = 0;
-      options->HiddenServiceStatistics = 0;
       options->ExitPortStatistics = 0;
     }
 
index 18fff78942cdeeebf2e30e7b1b49ea768b90c05f..0db9f23604469d044a52d736b519ef580090794b 100644 (file)
@@ -4168,6 +4168,10 @@ typedef struct {
 
   /** If true, the user wants us to collect statistics as hidden service
    * directory, introduction point, or rendezvous point. */
+  int HiddenServiceStatistics_option;
+  /** Internal variable to remember whether we're actually acting on
+   * HiddenServiceStatistics_option -- yes if it's set and we're a server,
+   * else no. */
   int HiddenServiceStatistics;
 
   /** If true, include statistics file contents in extra-info documents. */