Don't mark guards as unreachable if connection_connect() fails.

This commit is contained in:
George Kadianakis 2016-03-23 13:35:37 +02:00 committed by Nick Mathewson
parent 7123e9706e
commit d5acb633ae
2 changed files with 7 additions and 5 deletions

4
changes/bug14334 Normal file
View File

@ -0,0 +1,4 @@
o Minor bugfixes (guards):
- Don't mark guards as unreachable if connection_connect() fails. That
function fails for local reasons, so it shouldn't reveal anything about
the status of the guard. Fixes bug #14334; bugfix on 0.2.3.10-alpha.

View File

@ -1281,11 +1281,9 @@ connection_or_connect, (const tor_addr_t *_addr, uint16_t port,
switch (connection_connect(TO_CONN(conn), conn->base_.address, switch (connection_connect(TO_CONN(conn), conn->base_.address,
&addr, port, &socket_error)) { &addr, port, &socket_error)) {
case -1: case -1:
/* If the connection failed immediately, and we're using /* We failed to establish a connection probably because of a local
* a proxy, our proxy is down. Don't blame the Tor server. */ * error. No need to blame the guard in this case. Notify the networking
if (conn->base_.proxy_state == PROXY_INFANT) * system of this failure. */
entry_guard_register_connect_status(conn->identity_digest,
0, 1, time(NULL));
connection_or_connect_failed(conn, connection_or_connect_failed(conn,
errno_to_orconn_end_reason(socket_error), errno_to_orconn_end_reason(socket_error),
tor_socket_strerror(socket_error)); tor_socket_strerror(socket_error));