From 80020ea0e9c3f8dd81dfcc6bc210c4d1faed5b49 Mon Sep 17 00:00:00 2001 From: Roger Dingledine Date: Mon, 5 Apr 2004 22:43:01 +0000 Subject: [PATCH] don't detach-and-retry rendezvous streams svn:r1498 --- trunk/src/or/connection_edge.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/trunk/src/or/connection_edge.c b/trunk/src/or/connection_edge.c index 36b2341847..4dd2c3ea97 100644 --- a/trunk/src/or/connection_edge.c +++ b/trunk/src/or/connection_edge.c @@ -595,6 +595,15 @@ void connection_ap_expire_beginning(void) { continue; conn->num_retries++; circ = circuit_get_by_conn(conn); + if(circ->purpose == CIRCUIT_PURPOSE_C_REND_JOINED) { + if (now - conn->timestamp_lastread > 45) { + log_fn(LOG_WARN,"Rend stream is %d seconds late. Giving up.", + (int)(now - conn->timestamp_lastread)); + connection_mark_for_close(conn,END_STREAM_REASON_TIMEOUT); + } + continue; + } + assert(circ->purpose == CIRCUIT_PURPOSE_C_GENERAL); if(conn->num_retries >= MAX_STREAM_RETRIES) { log_fn(LOG_WARN,"Stream is %d seconds late. Giving up.", 15*conn->num_retries);