diff options
author | Roger Dingledine <arma@torproject.org> | 2008-04-08 00:53:34 +0000 |
---|---|---|
committer | Roger Dingledine <arma@torproject.org> | 2008-04-08 00:53:34 +0000 |
commit | ec673cf9ae198cea7279ac2551b3d7346e36b3ad (patch) | |
tree | 4a68683cd2cf39562bad6101da570814f4a1206e | |
parent | cb59d39e6f81999d51eba0aee8e9a9dacd22fc35 (diff) | |
download | tor-ec673cf9ae198cea7279ac2551b3d7346e36b3ad.tar.gz tor-ec673cf9ae198cea7279ac2551b3d7346e36b3ad.zip |
backport r14281/r14297 plus a changelog entry
svn:r14311
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | src/or/connection_edge.c | 5 |
2 files changed, 10 insertions, 3 deletions
@@ -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); |