summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Dingledine <arma@torproject.org>2008-04-08 00:53:34 +0000
committerRoger Dingledine <arma@torproject.org>2008-04-08 00:53:34 +0000
commitec673cf9ae198cea7279ac2551b3d7346e36b3ad (patch)
tree4a68683cd2cf39562bad6101da570814f4a1206e
parentcb59d39e6f81999d51eba0aee8e9a9dacd22fc35 (diff)
downloadtor-ec673cf9ae198cea7279ac2551b3d7346e36b3ad.tar.gz
tor-ec673cf9ae198cea7279ac2551b3d7346e36b3ad.zip
backport r14281/r14297 plus a changelog entry
svn:r14311
-rw-r--r--ChangeLog8
-rw-r--r--src/or/connection_edge.c5
2 files changed, 10 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 0bfb56c957..8824a86752 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,12 +1,16 @@
-Changes in version 0.2.0.24-?? - 2008-??-??
+Changes in version 0.2.0.24-rc - 2008-04-0?
o Minor bugfixes:
- Initialize log mutex before initializing dmalloc. Otherwise,
running with dmalloc would crash. Bugfix on 0.2.0.x-alpha.
- Do not read the configuration file when we've only been told to
- generate a password hash. Fixes bug 643. Bugfix on 0.0.9pre5. Fix
+ generate a password hash. Fixes bug 643. Bugfix on 0.0.9pre5. Fix
based on patch from Sebastian Hahn.
+ - Exit relays that are used as a client can now reach themselves
+ using the .exit notation, rather than just launching an infinite
+ pile of circuits. Fixes bug 641. Reported by Sebastian Hahn.
- When opening a logfile fails, tell us why.
+
Changes in version 0.2.0.23-rc - 2008-03-24
o Major bugfixes:
- When a tunneled directory request is made to a directory server
diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c
index baf344b99b..53531ffb24 100644
--- a/src/or/connection_edge.c
+++ b/src/or/connection_edge.c
@@ -2764,7 +2764,10 @@ connection_ap_can_use_exit(edge_connection_t *conn, routerinfo_t *exit)
* make sure the exit node of the existing circuit matches exactly.
*/
if (conn->chosen_exit_name) {
- if (router_get_by_nickname(conn->chosen_exit_name, 1) != exit) {
+ routerinfo_t *chosen_exit =
+ router_get_by_nickname(conn->chosen_exit_name, 1);
+ if (!chosen_exit || memcmp(chosen_exit->cache_info.identity_digest,
+ exit->cache_info.identity_digest, DIGEST_LEN)) {
/* doesn't match */
// log_debug(LD_APP,"Requested node '%s', considering node '%s'. No.",
// conn->chosen_exit_name, exit->nickname);