[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[or-cvs] r15435: backport r15366, bump to 0.2.0.28-rc-dev (in tor/branches/tor-0_2_0-patches: . contrib doc src/or src/win32)
Author: arma
Date: 2008-06-23 14:52:12 -0400 (Mon, 23 Jun 2008)
New Revision: 15435
Modified:
tor/branches/tor-0_2_0-patches/ChangeLog
tor/branches/tor-0_2_0-patches/configure.in
tor/branches/tor-0_2_0-patches/contrib/tor-mingw.nsi.in
tor/branches/tor-0_2_0-patches/doc/TODO.020
tor/branches/tor-0_2_0-patches/src/or/circuitbuild.c
tor/branches/tor-0_2_0-patches/src/or/circuituse.c
tor/branches/tor-0_2_0-patches/src/or/connection_edge.c
tor/branches/tor-0_2_0-patches/src/or/or.h
tor/branches/tor-0_2_0-patches/src/win32/orconfig.h
Log:
backport r15366, bump to 0.2.0.28-rc-dev
Modified: tor/branches/tor-0_2_0-patches/ChangeLog
===================================================================
--- tor/branches/tor-0_2_0-patches/ChangeLog 2008-06-23 18:51:12 UTC (rev 15434)
+++ tor/branches/tor-0_2_0-patches/ChangeLog 2008-06-23 18:52:12 UTC (rev 15435)
@@ -1,4 +1,15 @@
-Changes in version 0.2.0.29 - 2008-06-13
+Changes in version 0.2.0.29 - 2008-06-xx
+ o Major bugfixes:
+ - If you have more than one bridge but don't know their keys,
+ you would only learn a request for the descriptor of the first one
+ on your list. (Tor considered launching requests for the others, but
+ found that it already had a connection on the way for $0000...0000
+ so it didn't open another.)
+ - If you have more than one bridge but don't know their keys, and the
+ connection to one of the bridges failed, you would cancel all
+ pending bridge connections. (After all, they all have the same
+ digest.)
+
o Minor bugfixes:
- Fix a macro/CPP interactions that was confusing some compilers:
some GCCs don't like #if/#endif pairs inside macro arguments.
Modified: tor/branches/tor-0_2_0-patches/configure.in
===================================================================
--- tor/branches/tor-0_2_0-patches/configure.in 2008-06-23 18:51:12 UTC (rev 15434)
+++ tor/branches/tor-0_2_0-patches/configure.in 2008-06-23 18:52:12 UTC (rev 15435)
@@ -5,7 +5,7 @@
dnl See LICENSE for licensing information
AC_INIT
-AM_INIT_AUTOMAKE(tor, 0.2.0.28-rc)
+AM_INIT_AUTOMAKE(tor, 0.2.0.28-rc-dev)
AM_CONFIG_HEADER(orconfig.h)
AC_CANONICAL_HOST
Modified: tor/branches/tor-0_2_0-patches/contrib/tor-mingw.nsi.in
===================================================================
--- tor/branches/tor-0_2_0-patches/contrib/tor-mingw.nsi.in 2008-06-23 18:51:12 UTC (rev 15434)
+++ tor/branches/tor-0_2_0-patches/contrib/tor-mingw.nsi.in 2008-06-23 18:52:12 UTC (rev 15435)
@@ -9,7 +9,7 @@
!include "FileFunc.nsh"
!insertmacro GetParameters
-!define VERSION "0.2.0.28-rc"
+!define VERSION "0.2.0.28-rc-dev"
!define INSTALLER "tor-${VERSION}-win32.exe"
!define WEBSITE "https://www.torproject.org/"
!define LICENSE "LICENSE"
Modified: tor/branches/tor-0_2_0-patches/doc/TODO.020
===================================================================
--- tor/branches/tor-0_2_0-patches/doc/TODO.020 2008-06-23 18:51:12 UTC (rev 15434)
+++ tor/branches/tor-0_2_0-patches/doc/TODO.020 2008-06-23 18:52:12 UTC (rev 15435)
@@ -5,7 +5,7 @@
Items before a stable 0.2.0.x bundle:
- Tor items:
R - releasenotes
- - backport r15366
+ o backport r15366
- Vidalia items:
E d address arma's Linux 100% cpu bug
- Torbutton items:
Modified: tor/branches/tor-0_2_0-patches/src/or/circuitbuild.c
===================================================================
--- tor/branches/tor-0_2_0-patches/src/or/circuitbuild.c 2008-06-23 18:51:12 UTC (rev 15434)
+++ tor/branches/tor-0_2_0-patches/src/or/circuitbuild.c 2008-06-23 18:52:12 UTC (rev 15435)
@@ -412,8 +412,9 @@
smartlist_t *pending_circs;
int err_reason = 0;
- log_debug(LD_CIRC,"or_conn to %s, status=%d",
- or_conn->nickname ? or_conn->nickname : "NULL", status);
+ log_debug(LD_CIRC,"or_conn to %s/%s, status=%d",
+ or_conn->nickname ? or_conn->nickname : "NULL",
+ or_conn->_base.address, status);
pending_circs = smartlist_create();
circuit_get_all_pending_on_or_conn(pending_circs, or_conn);
Modified: tor/branches/tor-0_2_0-patches/src/or/circuituse.c
===================================================================
--- tor/branches/tor-0_2_0-patches/src/or/circuituse.c 2008-06-23 18:51:12 UTC (rev 15434)
+++ tor/branches/tor-0_2_0-patches/src/or/circuituse.c 2008-06-23 18:52:12 UTC (rev 15435)
@@ -95,10 +95,19 @@
tor_assert(conn->chosen_exit_name);
if (build_state->chosen_exit) {
char digest[DIGEST_LEN];
- if (hexdigest_to_digest(conn->chosen_exit_name, digest) < 0 ||
- memcmp(digest, build_state->chosen_exit->identity_digest,
- DIGEST_LEN))
+ if (hexdigest_to_digest(conn->chosen_exit_name, digest) < 0)
+ return 0; /* broken digest, we don't want it */
+ if (memcmp(digest, build_state->chosen_exit->identity_digest,
+ DIGEST_LEN))
return 0; /* this is a circuit to somewhere else */
+ if (tor_digest_is_zero(digest)) {
+ /* we don't know the digest; have to compare addr:port */
+ struct in_addr in;
+ if (!tor_inet_aton(conn->socks_request->address, &in) ||
+ build_state->chosen_exit->addr != ntohl(in.s_addr) ||
+ build_state->chosen_exit->port != conn->socks_request->port)
+ return 0;
+ }
}
} else {
if (conn->want_onehop) {
@@ -748,7 +757,7 @@
}
/* if there are any one-hop streams waiting on this circuit, fail
* them now so they can retry elsewhere. */
- connection_ap_fail_onehop(circ->_base.n_conn_id_digest);
+ connection_ap_fail_onehop(circ->_base.n_conn_id_digest, circ->build_state);
}
switch (circ->_base.purpose) {
Modified: tor/branches/tor-0_2_0-patches/src/or/connection_edge.c
===================================================================
--- tor/branches/tor-0_2_0-patches/src/or/connection_edge.c 2008-06-23 18:51:12 UTC (rev 15434)
+++ tor/branches/tor-0_2_0-patches/src/or/connection_edge.c 2008-06-23 18:52:12 UTC (rev 15435)
@@ -460,7 +460,8 @@
/** Tell any AP streams that are waiting for a onehop tunnel to
* <b>failed_digest</b> that they are going to fail. */
void
-connection_ap_fail_onehop(const char *failed_digest)
+connection_ap_fail_onehop(const char *failed_digest,
+ cpath_build_state_t *build_state)
{
edge_connection_t *edge_conn;
char digest[DIGEST_LEN];
@@ -474,12 +475,23 @@
edge_conn = TO_EDGE_CONN(conn);
if (!edge_conn->want_onehop)
continue;
- if (!hexdigest_to_digest(edge_conn->chosen_exit_name, digest) &&
- !memcmp(digest, failed_digest, DIGEST_LEN)) {
- log_info(LD_APP, "Closing onehop stream to '%s' because the OR conn "
- "just failed.", edge_conn->chosen_exit_name);
- connection_mark_unattached_ap(edge_conn, END_STREAM_REASON_TIMEOUT);
+ if (hexdigest_to_digest(edge_conn->chosen_exit_name, digest) < 0 ||
+ memcmp(digest, failed_digest, DIGEST_LEN))
+ continue;
+ if (tor_digest_is_zero(digest)) {
+ /* we don't know the digest; have to compare addr:port */
+ struct in_addr in;
+ if (!build_state || !build_state->chosen_exit ||
+ !edge_conn->socks_request || !edge_conn->socks_request->address ||
+ !tor_inet_aton(edge_conn->socks_request->address, &in) ||
+ build_state->chosen_exit->addr != ntohl(in.s_addr) ||
+ build_state->chosen_exit->port != edge_conn->socks_request->port)
+ continue;
}
+ log_info(LD_APP, "Closing onehop stream to '%s/%s' because the OR conn "
+ "just failed.", edge_conn->chosen_exit_name,
+ edge_conn->socks_request->address);
+ connection_mark_unattached_ap(edge_conn, END_STREAM_REASON_TIMEOUT);
});
}
Modified: tor/branches/tor-0_2_0-patches/src/or/or.h
===================================================================
--- tor/branches/tor-0_2_0-patches/src/or/or.h 2008-06-23 18:51:12 UTC (rev 15434)
+++ tor/branches/tor-0_2_0-patches/src/or/or.h 2008-06-23 18:52:12 UTC (rev 15435)
@@ -2812,7 +2812,8 @@
int connection_ap_can_use_exit(edge_connection_t *conn, routerinfo_t *exit);
void connection_ap_expire_beginning(void);
void connection_ap_attach_pending(void);
-void connection_ap_fail_onehop(const char *failed_digest);
+void connection_ap_fail_onehop(const char *failed_digest,
+ cpath_build_state_t *build_state);
void circuit_discard_optional_exit_enclaves(extend_info_t *info);
int connection_ap_detach_retriable(edge_connection_t *conn,
origin_circuit_t *circ,
Modified: tor/branches/tor-0_2_0-patches/src/win32/orconfig.h
===================================================================
--- tor/branches/tor-0_2_0-patches/src/win32/orconfig.h 2008-06-23 18:51:12 UTC (rev 15434)
+++ tor/branches/tor-0_2_0-patches/src/win32/orconfig.h 2008-06-23 18:52:12 UTC (rev 15435)
@@ -227,6 +227,6 @@
#define USING_TWOS_COMPLEMENT
/* Version number of package */
-#define VERSION "0.2.0.28-rc"
+#define VERSION "0.2.0.28-rc-dev"