diff options
author | Roger Dingledine <arma@torproject.org> | 2005-04-26 22:36:00 +0000 |
---|---|---|
committer | Roger Dingledine <arma@torproject.org> | 2005-04-26 22:36:00 +0000 |
commit | adaf3d31e69225914dab70c0311f4700fae7b0f0 (patch) | |
tree | 7cd80b2d7a9bc74a53f13e1b87ef5134301c9f70 | |
parent | 2a7aec0ffd48e7d626d262fa141e1654c6de742e (diff) | |
download | tor-adaf3d31e69225914dab70c0311f4700fae7b0f0.tar.gz tor-adaf3d31e69225914dab70c0311f4700fae7b0f0.zip |
hidden service client connections were using some of their
60 seconds fetching the hidserv descriptor, which made them
more likely to fail on the first attempt, yet they work fine
on the second. so now give them extra time for the first try.
svn:r4127
-rw-r--r-- | src/or/rendclient.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/or/rendclient.c b/src/or/rendclient.c index c63a4d9cb8..8ef23710dd 100644 --- a/src/or/rendclient.c +++ b/src/or/rendclient.c @@ -382,6 +382,7 @@ rend_client_receive_rendezvous(circuit_t *circ, const char *request, size_t requ void rend_client_desc_here(char *query) { connection_t *conn; rend_cache_entry_t *entry; + time_t now = time(NULL); while ((conn = connection_get_by_type_state_rendquery(CONN_TYPE_AP, AP_CONN_STATE_RENDDESC_WAIT, query))) { @@ -391,6 +392,13 @@ void rend_client_desc_here(char *query) { * valid entry from before which we should reuse */ log_fn(LOG_INFO,"Rend desc is usable. Launching circuits."); conn->state = AP_CONN_STATE_CIRCUIT_WAIT; + + /* restart their timeout values, so they get a fair shake at + * connecting to the hidden service. */ + conn->timestamp_created = now; + conn->timestamp_lastread = now; + conn->timestamp_lastwritten = now; + if (connection_ap_handshake_attach_circuit(conn) < 0) { /* it will never work */ log_fn(LOG_WARN,"attaching to a rend circ failed. Closing conn."); |