diff options
author | Nick Mathewson <nickm@torproject.org> | 2009-05-27 14:20:18 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2009-05-27 14:20:18 -0400 |
commit | 0e2618dd549701e0cede8e2b631f13b8f4071e8e (patch) | |
tree | 07d4d5eeb84b1acd92398303254b2439f4bd014b | |
parent | 181674e9bba9f4a0155f6172e437931d9560219c (diff) | |
parent | 1843f3936c7ee834a5974d1914bf749f8ea27e39 (diff) | |
download | tor-0e2618dd549701e0cede8e2b631f13b8f4071e8e.tar.gz tor-0e2618dd549701e0cede8e2b631f13b8f4071e8e.zip |
Merge commit 'origin/maint-0.2.1'
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | src/or/config.c | 2 | ||||
-rw-r--r-- | src/or/geoip.c | 8 |
4 files changed, 13 insertions, 2 deletions
diff --git a/.gitignore b/.gitignore index 8c80e09c1a..6eacae932d 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ \#*\# .#* *~ +*.swp # C stuff *.o # Diff droppings @@ -26,6 +26,10 @@ Changes in version 0.2.1.16-?? - 2009-??-?? - Log correct error messages for DNS-related network errors on Windows. + o Minor bugfixes (on 0.2.1.x): + - When switching back and forth between bridge mode, do not start + gathering GeoIP data until two hours have passed. + Changes in version 0.2.1.15-rc - 2009-05-25 o Major bugfixes (on 0.2.0.x): diff --git a/src/or/config.c b/src/or/config.c index e462b3e76a..70ad1b55cd 100644 --- a/src/or/config.c +++ b/src/or/config.c @@ -1331,7 +1331,7 @@ options_act(or_options_t *old_options) if (! bool_eq(options->BridgeRelay, old_options->BridgeRelay)) { log_info(LD_GENERAL, "Bridge status changed. Forgetting GeoIP stats."); - geoip_remove_old_clients(time(NULL)+3600); + geoip_remove_old_clients(time(NULL)+(2*60*60)); } if (options_transition_affects_workers(old_options, options)) { diff --git a/src/or/geoip.c b/src/or/geoip.c index 64ced6ea90..41c8f21cdb 100644 --- a/src/or/geoip.c +++ b/src/or/geoip.c @@ -310,6 +310,9 @@ geoip_note_client_seen(geoip_client_action_t action, if (action == GEOIP_CLIENT_CONNECT) { if (!(options->BridgeRelay && options->BridgeRecordUsageByCountry)) return; + /* Did we recently switch from bridge to relay or back? */ + if (client_history_starts > now) + return; } else { #ifndef ENABLE_GEOIP_STATS return; @@ -393,7 +396,10 @@ _remove_old_client_helper(struct clientmap_entry_t *ent, void *_cutoff) } } -/** Forget about all clients that haven't connected since <b>cutoff</b>. */ +/** Forget about all clients that haven't connected since <b>cutoff</b>. + * If <b>cutoff</b> is in the future, clients won't be added to the history + * until this time is reached. This is useful to prevent relays that switch + * to bridges from reporting unbelievable numbers of clients. */ void geoip_remove_old_clients(time_t cutoff) { |