[or-cvs] r19291: {tor} Finally fix the bug where dynamic-IP relays disappear when t (in tor/trunk: . src/or)
arma at seul.org
arma at seul.org
Sat Apr 11 18:09:15 UTC 2009
Author: arma
Date: 2009-04-11 14:09:15 -0400 (Sat, 11 Apr 2009)
New Revision: 19291
Modified:
tor/trunk/ChangeLog
tor/trunk/src/or/connection_edge.c
Log:
Finally fix the bug where dynamic-IP relays disappear when their
IP address changes: directory mirrors were mistakenly telling them
their old address if they asked via begin_dir, so they never got
an accurate answer about their new address, so they just vanished
after a day. Should fix bugs 827, 883, and 900 -- but alas, only
after every directory mirror has upgraded.
Modified: tor/trunk/ChangeLog
===================================================================
--- tor/trunk/ChangeLog 2009-04-11 13:55:33 UTC (rev 19290)
+++ tor/trunk/ChangeLog 2009-04-11 18:09:15 UTC (rev 19291)
@@ -1,21 +1,25 @@
Changes in version 0.2.1.14-rc - 2009-04-11
- o Security fixes:
- - Avoid crashing in the presence of certain malformed descriptors.
- Found by lark, and by automated fuzzing.
-
o Major features:
- Clients replace entry guards that were chosen more than a few months
ago. This change should significantly improve client performance,
especially once more people upgrade, since relays that have been
a guard for a long time are currently overloaded.
- o Major bugfixes:
+ o Major bugfixes (on 0.2.0):
+ - Finally fix the bug where dynamic-IP relays disappear when their
+ IP address changes: directory mirrors were mistakenly telling them
+ their old address if they asked via begin_dir, so they never got
+ an accurate answer about their new address, so they just vanished
+ after a day. Should fix bugs 827, 883, and 900 -- but alas, only
+ after every directory mirror has upgraded.
- Relays were falling out of the networkstatus consensus for
part of a day if they changed their local config but the
authorities discarded their new descriptor as "not sufficiently
different". Now directory authorities accept a descriptor as changed
if bandwidthrate or bandwidthburst changed. Partial fix for bug 962;
patch by Sebastian.
+ - Avoid crashing in the presence of certain malformed descriptors.
+ Found by lark, and by automated fuzzing.
o Minor features:
- When generating circuit events with verbose nicknames for
Modified: tor/trunk/src/or/connection_edge.c
===================================================================
--- tor/trunk/src/or/connection_edge.c 2009-04-11 13:55:33 UTC (rev 19290)
+++ tor/trunk/src/or/connection_edge.c 2009-04-11 18:09:15 UTC (rev 19291)
@@ -2547,8 +2547,12 @@
END_STREAM_REASON_NOTDIRECTORY, NULL);
return 0;
}
- if (or_circ && or_circ->p_conn && or_circ->p_conn->_base.address)
- address = tor_strdup(or_circ->p_conn->_base.address);
+ /* Make sure to get the 'real' address of the previous hop: the
+ * caller might want to know whether his IP address has changed, and
+ * we might already have corrected _base.addr[ess] for the relay's
+ * canonical IP address. */
+ if (or_circ && or_circ->p_conn)
+ address = tor_dup_addr(&or_circ->p_conn->real_addr);
else
address = tor_strdup("127.0.0.1");
port = 1; /* XXXX This value is never actually used anywhere, and there
More information about the tor-commits
mailing list