summaryrefslogtreecommitdiff
path: root/src/or/connection_edge.c
diff options
context:
space:
mode:
authorRoger Dingledine <arma@torproject.org>2004-04-05 22:43:01 +0000
committerRoger Dingledine <arma@torproject.org>2004-04-05 22:43:01 +0000
commit077f133257f81b80ba2729057815efef8dff1cfe (patch)
tree690762493756c8cb28f71b33cc898757f5bc0bbb /src/or/connection_edge.c
parent0f74b68edd9dc4f7cf48201fcbe544212b8b5c69 (diff)
downloadtor-077f133257f81b80ba2729057815efef8dff1cfe.tar.gz
tor-077f133257f81b80ba2729057815efef8dff1cfe.zip
don't detach-and-retry rendezvous streams
svn:r1498
Diffstat (limited to 'src/or/connection_edge.c')
-rw-r--r--src/or/connection_edge.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c
index 36b2341847..4dd2c3ea97 100644
--- a/src/or/connection_edge.c
+++ b/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);