aboutsummaryrefslogtreecommitdiff
path: root/src/or/connection_or.c
diff options
context:
space:
mode:
authorRoger Dingledine <arma@torproject.org>2006-03-18 01:24:04 +0000
committerRoger Dingledine <arma@torproject.org>2006-03-18 01:24:04 +0000
commit581795f41d3ab0be4d9e224ae5da1ee51fd6c842 (patch)
treee99d2fafb09aa3deb2de7182955a03f01ff0936c /src/or/connection_or.c
parentcf6ba3e76fbf628ced2977be9f35531a81dc84c9 (diff)
downloadtor-581795f41d3ab0be4d9e224ae5da1ee51fd6c842.tar
tor-581795f41d3ab0be4d9e224ae5da1ee51fd6c842.tar.gz
auth dir servers were only modifying a server's is_running field
when they created a network status. so if nobody asked for a network status, they would never discover that any servers are is_running, so they could never build a circuit. svn:r6183
Diffstat (limited to 'src/or/connection_or.c')
-rw-r--r--src/or/connection_or.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/or/connection_or.c b/src/or/connection_or.c
index 271032939..7fd717717 100644
--- a/src/or/connection_or.c
+++ b/src/or/connection_or.c
@@ -462,8 +462,8 @@ connection_or_connect(uint32_t addr, uint16_t port, const char *id_digest)
* an https proxy, our https proxy is down. Don't blame the
* Tor server. */
if (!options->HttpsProxy) {
- router_mark_as_down(conn->identity_digest);
entry_guard_set_status(conn->identity_digest, 0);
+ router_set_status(conn->identity_digest, 0);
}
control_event_or_conn_status(conn, OR_CONN_EVENT_FAILED);
connection_free(conn);
@@ -637,6 +637,7 @@ connection_or_check_valid_handshake(connection_t *conn, char *digest_rcvd)
"but got %s",
conn->address, conn->port, expected, seen);
entry_guard_set_status(conn->identity_digest, 0);
+ router_set_status(conn->identity_digest, 0);
control_event_or_conn_status(conn, OR_CONN_EVENT_FAILED);
as_advertised = 0;
}
@@ -703,6 +704,7 @@ connection_tls_finish_handshake(connection_t *conn)
/* pending circs get closed in circuit_about_to_close_connection() */
return -1;
}
+ router_set_status(conn->identity_digest, 1);
}
connection_watch_events(conn, EV_READ);
circuit_n_conn_done(conn, 1); /* send the pending creates, if any. */