[tor-commits] [tor/maint-0.2.2] Fix clear_trackhostexits_mapping() to actually work as advertised
nickm at torproject.org
nickm at torproject.org
Wed Apr 27 21:23:29 UTC 2011
commit 34510f9278675e6e041503e425ca19a1fa0f3616
Author: Nick Mathewson <nickm at torproject.org>
Date: Wed Apr 27 17:21:41 2011 -0400
Fix clear_trackhostexits_mapping() to actually work as advertised
Previously, it would remove every trackhostexits-derived mapping
*from* xyz.<exitname>.exit; it was supposed to remove every
trackhostexits-derived mapping *to* xyz.<exitname>.exit.
Bugfix on 0.2.0.20-rc: fixes an XXX020 added while staring at bug-1090
issues.
---
changes/clear_trackexithost | 5 +++++
src/or/connection_edge.c | 4 ++--
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/changes/clear_trackexithost b/changes/clear_trackexithost
new file mode 100644
index 0000000..701d369
--- /dev/null
+++ b/changes/clear_trackexithost
@@ -0,0 +1,5 @@
+ o Minor bugfixes:
+ - Fix a bug in the code where we could keep trying to use a
+ TrackHostExits-based mapping after we failed to reach the intended
+ destination node. Bugfix on 0.2.0.20-rc.
+
diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c
index 082cd5f..2c1196c 100644
--- a/src/or/connection_edge.c
+++ b/src/or/connection_edge.c
@@ -799,8 +799,8 @@ clear_trackexithost_mappings(const char *exitname)
tor_strlower(suffix);
STRMAP_FOREACH_MODIFY(addressmap, address, addressmap_entry_t *, ent) {
- /* XXXX022 HEY! Shouldn't this look at ent->new_address? */
- if (ent->source == ADDRMAPSRC_TRACKEXIT && !strcmpend(address, suffix)) {
+ if (ent->source == ADDRMAPSRC_TRACKEXIT &&
+ !strcmpend(ent->new_address, suffix)) {
addressmap_ent_remove(address, ent);
MAP_DEL_CURRENT(address);
}
More information about the tor-commits
mailing list