aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--changes/clear_trackexithost5
-rw-r--r--src/or/connection_edge.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/changes/clear_trackexithost b/changes/clear_trackexithost
new file mode 100644
index 0000000000..701d369df3
--- /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 082cd5f1d7..2c1196c0cd 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);
}