Merge remote-tracking branch 'karsten/feature3951' into maint-0.2.2

This commit is contained in:
Nick Mathewson 2011-10-07 16:46:50 -04:00
commit ca597efb22
2 changed files with 36 additions and 31 deletions

View File

@ -0,0 +1,4 @@
o Minor features:
- Turn on directory request statistics by default and include them in
extra-info descriptors. Don't break if we have no GeoIP database.

View File

@ -229,7 +229,7 @@ static config_var_t _option_vars[] = {
OBSOLETE("DirRecordUsageGranularity"),
OBSOLETE("DirRecordUsageRetainIPs"),
OBSOLETE("DirRecordUsageSaveInterval"),
V(DirReqStatistics, BOOL, "0"),
V(DirReqStatistics, BOOL, "1"),
VAR("DirServer", LINELIST, DirServers, NULL),
V(DisableAllSwap, BOOL, "0"),
V(DNSPort, PORT, "0"),
@ -246,7 +246,7 @@ static config_var_t _option_vars[] = {
V(ExitPolicy, LINELIST, NULL),
V(ExitPolicyRejectPrivate, BOOL, "1"),
V(ExitPortStatistics, BOOL, "0"),
V(ExtraInfoStatistics, BOOL, "0"),
V(ExtraInfoStatistics, BOOL, "1"),
#if defined (WINCE)
V(FallbackNetworkstatusFile, FILENAME, "fallback-consensus"),
@ -1408,44 +1408,45 @@ options_act(or_options_t *old_options)
tor_free(actual_fname);
}
if (options->DirReqStatistics && !geoip_is_loaded()) {
/* Check if GeoIP database could be loaded. */
log_warn(LD_CONFIG, "Configured to measure directory request "
"statistics, but no GeoIP database found!");
return -1;
}
if (options->EntryStatistics) {
if (should_record_bridge_info(options)) {
/* Don't allow measuring statistics on entry guards when configured
* as bridge. */
log_warn(LD_CONFIG, "Bridges cannot be configured to measure "
"additional GeoIP statistics as entry guards.");
return -1;
} else if (!geoip_is_loaded()) {
/* Check if GeoIP database could be loaded. */
log_warn(LD_CONFIG, "Configured to measure entry node statistics, "
"but no GeoIP database found!");
return -1;
}
}
if (options->CellStatistics || options->DirReqStatistics ||
options->EntryStatistics || options->ExitPortStatistics) {
time_t now = time(NULL);
int print_notice = 0;
if ((!old_options || !old_options->CellStatistics) &&
options->CellStatistics)
options->CellStatistics) {
rep_hist_buffer_stats_init(now);
print_notice = 1;
}
if ((!old_options || !old_options->DirReqStatistics) &&
options->DirReqStatistics)
geoip_dirreq_stats_init(now);
options->DirReqStatistics) {
if (geoip_is_loaded()) {
geoip_dirreq_stats_init(now);
print_notice = 1;
} else {
log_notice(LD_CONFIG, "Configured to measure directory request "
"statistics, but no GeoIP database found! "
"Please specify a GeoIP database using the "
"GeoIPFile option!");
}
}
if ((!old_options || !old_options->EntryStatistics) &&
options->EntryStatistics)
geoip_entry_stats_init(now);
options->EntryStatistics && !should_record_bridge_info(options)) {
if (geoip_is_loaded()) {
geoip_entry_stats_init(now);
print_notice = 1;
} else {
log_notice(LD_CONFIG, "Configured to measure entry node "
"statistics, but no GeoIP database found! "
"Please specify a GeoIP database using the "
"GeoIPFile option!");
}
}
if ((!old_options || !old_options->ExitPortStatistics) &&
options->ExitPortStatistics)
options->ExitPortStatistics) {
rep_hist_exit_stats_init(now);
if (!old_options)
print_notice = 1;
}
if (print_notice)
log_notice(LD_CONFIG, "Configured to measure statistics. Look for "
"the *-stats files that will first be written to the "
"data directory in 24 hours from now.");