diff options
author | Roger Dingledine <arma@torproject.org> | 2011-05-17 20:51:47 -0400 |
---|---|---|
committer | Roger Dingledine <arma@torproject.org> | 2011-05-17 21:13:59 -0400 |
commit | 073fed06c458fac428b2377b4828412acb7d3802 (patch) | |
tree | 1995bf6bb1726ea2a79bc184ada2e02776f058d0 | |
parent | 07c5026efa4c5fac64e5f3e843eae6bea0de54db (diff) | |
download | tor-073fed06c458fac428b2377b4828412acb7d3802.tar tor-073fed06c458fac428b2377b4828412acb7d3802.tar.gz |
discard circuits when we change our bridge configuration
otherwise we might reuse circuits from the previous configuration,
which could be bad depending on the user's situation
-rw-r--r-- | changes/bug3200 | 6 | ||||
-rw-r--r-- | src/or/config.c | 8 |
2 files changed, 12 insertions, 2 deletions
diff --git a/changes/bug3200 b/changes/bug3200 new file mode 100644 index 000000000..a80d51633 --- /dev/null +++ b/changes/bug3200 @@ -0,0 +1,6 @@ + o Minor bugfixes: + - When a client starts or stops using bridges, never use a circuit + that was built before the configuration change. This behavior could + put at risk a user who uses bridges to ensure that her traffic + only goes to the chosen addresses. Bugfix on 0.2.0.3-alpha; fixes + bug 3200. diff --git a/src/or/config.c b/src/or/config.c index 36a8940ca..8b59d509e 100644 --- a/src/or/config.c +++ b/src/or/config.c @@ -1275,6 +1275,9 @@ options_act(or_options_t *old_options) int revise_trackexithosts = 0; int revise_automap_entries = 0; if ((options->UseEntryGuards && !old_options->UseEntryGuards) || + options->UseBridges != old_options->UseBridges || + (options->UseBridges && + !config_lines_eq(options->Bridges, old_options->Bridges)) || !routerset_equal(old_options->ExcludeNodes,options->ExcludeNodes) || !routerset_equal(old_options->ExcludeExitNodes, options->ExcludeExitNodes) || @@ -1282,8 +1285,9 @@ options_act(or_options_t *old_options) !routerset_equal(old_options->ExitNodes, options->ExitNodes) || options->StrictNodes != old_options->StrictNodes) { log_info(LD_CIRC, - "Changed to using entry guards, or changed preferred or " - "excluded node lists. Abandoning previous circuits."); + "Changed to using entry guards or bridges, or changed " + "preferred or excluded node lists. " + "Abandoning previous circuits."); circuit_mark_all_unused_circs(); circuit_expire_all_dirty_circs(); revise_trackexithosts = 1; |