summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Hahn <sebastian@torproject.org>2010-08-04 00:51:39 +0200
committerSebastian Hahn <sebastian@torproject.org>2010-08-04 00:51:39 +0200
commit161b275028e90d38582c3cddf65d906e8a181368 (patch)
tree5f73dd69cfc20bf2afb3fd2699487728fa96f765
parent150ed553dfce93c6dd32ee59b8df0422e04cd699 (diff)
downloadtor-161b275028e90d38582c3cddf65d906e8a181368.tar.gz
tor-161b275028e90d38582c3cddf65d906e8a181368.zip
Retry streams that ended with NOROUTE error
Also add the NOROUTE reason to control-spec.
-rw-r--r--doc/spec/control-spec.txt2
-rw-r--r--src/or/relay.c1
2 files changed, 2 insertions, 1 deletions
diff --git a/doc/spec/control-spec.txt b/doc/spec/control-spec.txt
index cf92e2b9e3..948b7ed795 100644
--- a/doc/spec/control-spec.txt
+++ b/doc/spec/control-spec.txt
@@ -1029,7 +1029,7 @@ $Id$
Reason = "MISC" / "RESOLVEFAILED" / "CONNECTREFUSED" /
"EXITPOLICY" / "DESTROY" / "DONE" / "TIMEOUT" /
- "HIBERNATING" / "INTERNAL"/ "RESOURCELIMIT" /
+ "NOROUTE" / "HIBERNATING" / "INTERNAL"/ "RESOURCELIMIT" /
"CONNRESET" / "TORPROTOCOL" / "NOTDIRECTORY" / "END"
The "REASON" field is provided only for FAILED, CLOSED, and DETACHED
diff --git a/src/or/relay.c b/src/or/relay.c
index 2082da94fe..320c27037b 100644
--- a/src/or/relay.c
+++ b/src/or/relay.c
@@ -743,6 +743,7 @@ connection_ap_process_end_not_open(
case END_STREAM_REASON_RESOLVEFAILED:
case END_STREAM_REASON_TIMEOUT:
case END_STREAM_REASON_MISC:
+ case END_STREAM_REASON_NOROUTE:
if (client_dns_incr_failures(conn->socks_request->address)
< MAX_RESOLVE_FAILURES) {
/* We haven't retried too many times; reattach the connection. */