From: Roger Dingledine Date: Fri, 20 Jun 2008 04:42:17 +0000 (+0000) Subject: If we close our OR connection because there's been a circuit X-Git-Tag: tor-0.2.1.2-alpha~5 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8fa912a8c5934971038e2813a0571a5a00d5fd20;p=thirdparty%2Ftor.git If we close our OR connection because there's been a circuit pending on it for too long, we were telling our bootstrap status events "REASON=NONE". Now tell them "REASON=TIMEOUT". svn:r15369 --- diff --git a/ChangeLog b/ChangeLog index 7901f2c6a3..0c630b43f6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -49,6 +49,9 @@ Changes in version 0.2.1.2-alpha - 2008-06-?? as soon as you run out of working bridges, rather than waiting for ten failures -- which will never happen if you have less than ten bridges. + - If we close our OR connection because there's been a circuit + pending on it for too long, we were telling our bootstrap status + events "REASON=NONE". Now tell them "REASON=TIMEOUT". Changes in version 0.2.1.1-alpha - 2008-06-13 diff --git a/doc/TODO b/doc/TODO index 2ea0afe37b..2c4f738dab 100644 --- a/doc/TODO +++ b/doc/TODO @@ -350,8 +350,9 @@ R - if "no running bridges known", an application request should make results of the getinfo. R - get matt to make vidalia do a getinfo status/bootstrap-phase to get caught up after it connects. -R * in circuituse.c, + o in circuituse.c, /* XXX021 consider setting n_conn->socket_error to TIMEOUT */ +R d Setting DirPort when acting as bridge will give false Warnings For 0.2.1.x: - Proposals to do: diff --git a/src/or/circuituse.c b/src/or/circuituse.c index 3ba548e6fb..781aa9800b 100644 --- a/src/or/circuituse.c +++ b/src/or/circuituse.c @@ -752,7 +752,9 @@ circuit_build_failed(origin_circuit_t *circ) "(%s:%d). I'm going to try to rotate to a better connection.", n_conn->_base.address, n_conn->_base.port); n_conn->_base.or_is_obsolete = 1; - /* XXX021 consider setting n_conn->socket_error to TIMEOUT */ + if (n_conn->_base.state < OR_CONN_STATE_TLS_HANDSHAKING && + !n_conn->socket_error) + n_conn->socket_error = END_OR_CONN_REASON_TIMEOUT; entry_guard_register_connect_status(n_conn->identity_digest, 0, time(NULL)); } diff --git a/src/or/connection.c b/src/or/connection.c index 690cc02774..002d10a03e 100644 --- a/src/or/connection.c +++ b/src/or/connection.c @@ -2288,7 +2288,7 @@ connection_handle_write(connection_t *conn, int force) return 0; } -/** Openssl TLS record size is 16383; this is close. The goal here is to +/** OpenSSL TLS record size is 16383; this is close. The goal here is to * push data out as soon as we know there's enough for a TLS record, so * during periods of high load we won't read entire megabytes from * input before pushing any data out. It also has the feature of not