summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Dingledine <arma@torproject.org>2011-02-22 22:54:33 -0500
committerRoger Dingledine <arma@torproject.org>2011-02-22 22:54:33 -0500
commitf10ec55b25ab103df3c67d6ae9d760188c32ee9d (patch)
tree538a57320a79d5e57528b15da48b2367d97fb31d
parent6168d2e975a5712afe91a3b4ba9fba3bcee3a03a (diff)
parent10ad3442e11fb5a54c19eef7425bc317a9cc0969 (diff)
downloadtor-f10ec55b25ab103df3c67d6ae9d760188c32ee9d.tar.gz
tor-f10ec55b25ab103df3c67d6ae9d760188c32ee9d.zip
Merge branch 'maint-0.2.1' into release-0.2.1
-rw-r--r--changes/bug18599
-rw-r--r--changes/bug24024
-rw-r--r--configure.in2
-rw-r--r--src/or/config.c11
-rw-r--r--src/or/connection_edge.c2
-rw-r--r--src/or/rendclient.c5
-rw-r--r--src/or/routerlist.c3
7 files changed, 20 insertions, 16 deletions
diff --git a/changes/bug1859 b/changes/bug1859
new file mode 100644
index 0000000000..5b139f357c
--- /dev/null
+++ b/changes/bug1859
@@ -0,0 +1,9 @@
+ o Minor bugfixes:
+ - Bring the logic that gathers routerinfos and assesses the
+ acceptability of circuits into line. This prevents a Tor OP from getting
+ locked in a cycle of choosing its local OR as an exit for a path (due to
+ a .exit request) and then rejecting the circuit because its OR is not
+ listed yet. Also prevent Tor clients from using an OR running in the same
+ instance as an exit (due to a .exit request) if the OR does not meet the
+ same requirements expected of an OR running elsewhere.
+ Fixes bug 1859; bugfix on 0.2.0-alpha.
diff --git a/changes/bug2402 b/changes/bug2402
new file mode 100644
index 0000000000..f16f6773e7
--- /dev/null
+++ b/changes/bug2402
@@ -0,0 +1,4 @@
+ o Minor bugfixes (build)
+ - Do not include Git version tags as though they were SVN tags when
+ generating a tarball from inside a repository that has switched between
+ branches. Bugfix on 0.2.1.15-rc; fixes bug 2402.
diff --git a/configure.in b/configure.in
index 5514b7147e..c91bce07c0 100644
--- a/configure.in
+++ b/configure.in
@@ -866,7 +866,7 @@ fi
CPPFLAGS="$CPPFLAGS $TOR_CPPFLAGS_libevent $TOR_CPPFLAGS_openssl $TOR_CPPFLAGS_zlib"
-AC_CONFIG_FILES([Makefile tor.spec Doxyfile contrib/tor.sh contrib/torctl contrib/torify contrib/tor.logrotate contrib/Makefile contrib/osx/Makefile contrib/osx/TorBundleDesc.plist contrib/osx/TorBundleInfo.plist contrib/osx/TorDesc.plist contrib/osx/TorInfo.plist contrib/osx/TorStartupDesc.plist src/config/torrc.sample doc/tor.1 src/Makefile doc/Makefile doc/design-paper/Makefile doc/spec/Makefile src/config/Makefile src/common/Makefile src/or/Makefile src/win32/Makefile src/tools/Makefile contrib/suse/Makefile contrib/suse/tor.sh])
+AC_CONFIG_FILES([Makefile tor.spec Doxyfile contrib/tor.sh contrib/torctl contrib/torify contrib/tor.logrotate contrib/Makefile contrib/osx/Makefile contrib/osx/TorBundleDesc.plist contrib/osx/TorBundleInfo.plist contrib/osx/TorDesc.plist contrib/osx/TorInfo.plist contrib/osx/TorStartupDesc.plist src/config/torrc.sample doc/tor.1 src/Makefile doc/Makefile doc/design-paper/Makefile src/config/Makefile src/common/Makefile src/or/Makefile src/win32/Makefile src/tools/Makefile contrib/suse/Makefile contrib/suse/tor.sh])
AC_OUTPUT
if test -x /usr/bin/perl && test -x ./contrib/updateVersions.pl ; then
diff --git a/src/or/config.c b/src/or/config.c
index 8397b231a3..209a92d159 100644
--- a/src/or/config.c
+++ b/src/or/config.c
@@ -827,16 +827,7 @@ static char *_version = NULL;
const char *
get_version(void)
{
- if (_version == NULL) {
- if (strlen(tor_svn_revision)) {
- size_t len = strlen(VERSION)+strlen(tor_svn_revision)+8;
- _version = tor_malloc(len);
- tor_snprintf(_version, len, "%s (r%s)", VERSION, tor_svn_revision);
- } else {
- _version = tor_strdup(VERSION);
- }
- }
- return _version;
+ return VERSION;
}
/** Release additional memory allocated in options
diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c
index 052aa3706a..5609c1df40 100644
--- a/src/or/connection_edge.c
+++ b/src/or/connection_edge.c
@@ -571,7 +571,7 @@ circuit_discard_optional_exit_enclaves(extend_info_t *info)
!edge_conn->chosen_exit_retries)
continue;
r1 = router_get_by_nickname(edge_conn->chosen_exit_name, 0);
- r2 = router_get_by_nickname(info->nickname, 0);
+ r2 = router_get_by_digest(info->identity_digest);
if (!r1 || !r2 || r1 != r2)
continue;
tor_assert(edge_conn->socks_request);
diff --git a/src/or/rendclient.c b/src/or/rendclient.c
index 783a66150e..af91099fcb 100644
--- a/src/or/rendclient.c
+++ b/src/or/rendclient.c
@@ -814,7 +814,10 @@ rend_client_get_random_intro(const rend_data_t *rend_query)
intro = smartlist_get(entry->parsed->intro_nodes, i);
/* Do we need to look up the router or is the extend info complete? */
if (!intro->extend_info->onion_key) {
- router = router_get_by_nickname(intro->extend_info->nickname, 0);
+ if (tor_digest_is_zero(intro->extend_info->identity_digest))
+ router = router_get_by_hexdigest(intro->extend_info->nickname);
+ else
+ router = router_get_by_digest(intro->extend_info->identity_digest);
if (!router) {
log_info(LD_REND, "Unknown router with nickname '%s'; trying another.",
intro->extend_info->nickname);
diff --git a/src/or/routerlist.c b/src/or/routerlist.c
index 7c8e36e402..fb8fb8815a 100644
--- a/src/or/routerlist.c
+++ b/src/or/routerlist.c
@@ -1989,9 +1989,6 @@ router_get_by_nickname(const char *nickname, int warn_if_unnamed)
return router_get_by_hexdigest(nickname);
if (!strcasecmp(nickname, UNNAMED_ROUTER_NICKNAME))
return NULL;
- if (server_mode(get_options()) &&
- !strcasecmp(nickname, get_options()->Nickname))
- return router_get_my_routerinfo();
maybedigest = (strlen(nickname) >= HEX_DIGEST_LEN) &&
(base16_decode(digest,DIGEST_LEN,nickname,HEX_DIGEST_LEN) == 0);