aboutsummaryrefslogtreecommitdiff
path: root/src/or
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2014-09-18 15:31:08 -0400
committerNick Mathewson <nickm@torproject.org>2014-09-18 15:31:08 -0400
commit6d6e21a239deca137eb117eef49d3f875646a5fe (patch)
tree65a484fc6d3152629c48a0f30f8cfcc68b74dbac /src/or
parent58e813d0fcfcecfc2017255f2d8943cd26a4b2e7 (diff)
parent905443f074088cbc6322341e5c1cd6b35cd363a8 (diff)
downloadtor-6d6e21a239deca137eb117eef49d3f875646a5fe.tar.gz
tor-6d6e21a239deca137eb117eef49d3f875646a5fe.zip
Merge branch 'bug4244b_squashed'
Diffstat (limited to 'src/or')
-rw-r--r--src/or/config.c14
-rw-r--r--src/or/or.h5
2 files changed, 11 insertions, 8 deletions
diff --git a/src/or/config.c b/src/or/config.c
index 10af92a9cf..fe2d3c8dbd 100644
--- a/src/or/config.c
+++ b/src/or/config.c
@@ -208,7 +208,7 @@ static config_var_t option_vars_[] = {
OBSOLETE("DirRecordUsageGranularity"),
OBSOLETE("DirRecordUsageRetainIPs"),
OBSOLETE("DirRecordUsageSaveInterval"),
- V(DirReqStatistics, BOOL, "1"),
+ VAR("DirReqStatistics", BOOL, DirReqStatistics_option, "1"),
VAR("DirAuthority", LINELIST, DirAuthorities, NULL),
V(DirAuthorityFallbackRate, DOUBLE, "1.0"),
V(DisableAllSwap, BOOL, "0"),
@@ -1705,6 +1705,11 @@ options_act(const or_options_t *old_options)
connection_or_update_token_buckets(get_connection_array(), options);
}
+
+ /* Only collect directory-request statistics on relays and bridges. */
+ options->DirReqStatistics = options->DirReqStatistics_option &&
+ server_mode(options);
+
if (options->CellStatistics || options->DirReqStatistics ||
options->EntryStatistics || options->ExitPortStatistics ||
options->ConnDirectionStatistics ||
@@ -1712,11 +1717,6 @@ options_act(const or_options_t *old_options)
time_t now = time(NULL);
int print_notice = 0;
- /* Only collect directory-request statistics on relays and bridges. */
- if (!server_mode(options)) {
- options->DirReqStatistics = 0;
- }
-
/* Only collect other relay-only statistics on relays. */
if (!public_server_mode(options)) {
options->CellStatistics = 0;
@@ -1735,8 +1735,8 @@ options_act(const or_options_t *old_options)
geoip_dirreq_stats_init(now);
print_notice = 1;
} else {
+ /* disable statistics collection since we have no geoip file */
options->DirReqStatistics = 0;
- /* Don't warn Tor clients, they don't use statistics */
if (options->ORPort_set)
log_notice(LD_CONFIG, "Configured to measure directory request "
"statistics, but no GeoIP database found. "
diff --git a/src/or/or.h b/src/or/or.h
index 4d612ff65f..ba7eeea9e6 100644
--- a/src/or/or.h
+++ b/src/or/or.h
@@ -3910,8 +3910,11 @@ typedef struct {
* instead of a hostname. */
int WarnUnsafeSocks;
- /** If true, the user wants us to collect statistics on clients
+ /** If true, we're configured to collect statistics on clients
* requesting network statuses from us as directory. */
+ int DirReqStatistics_option;
+ /** Internal variable to remember whether we're actually acting on
+ * DirReqStatistics_option -- yes if it's set and we're a server, else no. */
int DirReqStatistics;
/** If true, the user wants us to collect statistics on port usage. */