diff options
author | Karsten Loesing <karsten.loesing@gmx.net> | 2009-06-16 22:07:16 +0200 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2009-06-16 16:25:35 -0400 |
commit | 3847f54945933a11d14053b80427f268ffcfd8ad (patch) | |
tree | abd62794188c9971a354fb2535ece3c778982780 /src/or/connection_edge.c | |
parent | 7f8a6c5e92531658e54b243ab00d1f279693a28d (diff) | |
download | tor-3847f54945933a11d14053b80427f268ffcfd8ad.tar.gz tor-3847f54945933a11d14053b80427f268ffcfd8ad.zip |
Backport fix for bug 997.
Backporting 6a32beb and ca8708a.
Diffstat (limited to 'src/or/connection_edge.c')
-rw-r--r-- | src/or/connection_edge.c | 27 |
1 files changed, 6 insertions, 21 deletions
diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c index 9b1f737917..83a7543c39 100644 --- a/src/or/connection_edge.c +++ b/src/or/connection_edge.c @@ -1683,27 +1683,12 @@ connection_ap_handshake_rewrite_and_attach(edge_connection_t *conn, if (conn->rend_data->auth_type == REND_NO_AUTH) rend_client_refetch_renddesc(conn->rend_data->onion_address); } else { /* r > 0 */ -/** How long after we receive a hidden service descriptor do we consider - * it valid? */ -#define NUM_SECONDS_BEFORE_HS_REFETCH (60*15) - if (now - entry->received < NUM_SECONDS_BEFORE_HS_REFETCH) { - conn->_base.state = AP_CONN_STATE_CIRCUIT_WAIT; - log_info(LD_REND, "Descriptor is here and fresh enough. Great."); - if (connection_ap_handshake_attach_circuit(conn) < 0) { - if (!conn->_base.marked_for_close) - connection_mark_unattached_ap(conn, END_STREAM_REASON_CANT_ATTACH); - return -1; - } - } else { - conn->_base.state = AP_CONN_STATE_RENDDESC_WAIT; - log_info(LD_REND, "Stale descriptor %s. Re-fetching.", - safe_str(conn->rend_data->onion_address)); - /* Fetch both, v0 and v2 rend descriptors in parallel. Use whichever - * arrives first. Exception: When using client authorization, only - * fetch v2 descriptors.*/ - rend_client_refetch_v2_renddesc(conn->rend_data); - if (conn->rend_data->auth_type == REND_NO_AUTH) - rend_client_refetch_renddesc(conn->rend_data->onion_address); + conn->_base.state = AP_CONN_STATE_CIRCUIT_WAIT; + log_info(LD_REND, "Descriptor is here and fresh enough. Great."); + if (connection_ap_handshake_attach_circuit(conn) < 0) { + if (!conn->_base.marked_for_close) + connection_mark_unattached_ap(conn, END_STREAM_REASON_CANT_ATTACH); + return -1; } } return 0; |