aboutsummaryrefslogtreecommitdiff
path: root/src/or/connection_edge.c
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2017-10-31 12:19:42 -0400
committerNick Mathewson <nickm@torproject.org>2017-10-31 12:19:42 -0400
commit4700ba6c3d67056fc271cd2355fc956c182af7ad (patch)
tree172318bc0b843c144b95cfec28bb9456220450fe /src/or/connection_edge.c
parent8b536ca5937911a31eaaa56b9d28f061b3d3f99f (diff)
parent652d22e608c10ee520a16fd86a4cdd90e5188025 (diff)
downloadtor-4700ba6c3d67056fc271cd2355fc956c182af7ad.tar.gz
tor-4700ba6c3d67056fc271cd2355fc956c182af7ad.zip
Merge branch 'maint-0.3.2'
Diffstat (limited to 'src/or/connection_edge.c')
-rw-r--r--src/or/connection_edge.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c
index 7d6667dbc9..c63b25165f 100644
--- a/src/or/connection_edge.c
+++ b/src/or/connection_edge.c
@@ -1571,10 +1571,10 @@ connection_ap_handle_onion(entry_connection_t *conn,
int ret = hs_client_refetch_hsdesc(&edge_conn->hs_ident->identity_pk);
switch (ret) {
case HS_CLIENT_FETCH_MISSING_INFO:
- /* By going to the end, the connection is put in waiting for a circuit
- * state which means that it will be retried and consider as a pending
- * connection. */
- goto end;
+ /* Keeping the connection in descriptor wait state is fine because
+ * once we get enough dirinfo or a new live consensus, the HS client
+ * subsystem is notified and every connection in that state will
+ * trigger a fetch for the service key. */
case HS_CLIENT_FETCH_LAUNCHED:
case HS_CLIENT_FETCH_PENDING:
case HS_CLIENT_FETCH_HAVE_DESC:
@@ -1591,7 +1591,6 @@ connection_ap_handle_onion(entry_connection_t *conn,
/* We have the descriptor! So launch a connection to the HS. */
log_info(LD_REND, "Descriptor is here. Great.");
- end:
base_conn->state = AP_CONN_STATE_CIRCUIT_WAIT;
/* We'll try to attach it at the next event loop, or whenever
* we call connection_ap_attach_pending() */