summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2014-02-09 21:30:23 -0500
committerNick Mathewson <nickm@torproject.org>2014-02-09 21:30:23 -0500
commitf5d32c08ba0b7307873324f8b24c4142523c1155 (patch)
tree0bb632f1be90029c204592c7b61de6c15a4864e4
parent9bb34aa897e4ecac27a6f8d50a659803f73c6cb9 (diff)
downloadtor-f5d32c08ba0b7307873324f8b24c4142523c1155.tar.gz
tor-f5d32c08ba0b7307873324f8b24c4142523c1155.zip
Call ENETUNREACH a case of NOROUTE, not a case of INTERNAL.
Found by cypherpunks; fix for a part of bug 10777; bugfix on 0.1.0.1-rc.
-rw-r--r--changes/10777_netunreach7
-rw-r--r--src/or/reasons.c2
2 files changed, 8 insertions, 1 deletions
diff --git a/changes/10777_netunreach b/changes/10777_netunreach
new file mode 100644
index 0000000000..369774f797
--- /dev/null
+++ b/changes/10777_netunreach
@@ -0,0 +1,7 @@
+ - Minor bugfixes:
+
+ - Treat ENETUNRECH at an exit node as a NOROUTE error, not an
+ INTERNAL error, since it can apparently happen when trying to
+ connect to the wrong sort of netblocks. Fixes a part of bug 10777;
+ bugfix on 0.1.0.1-rc.
+
diff --git a/src/or/reasons.c b/src/or/reasons.c
index 637f8cdc7d..fc31a438f7 100644
--- a/src/or/reasons.c
+++ b/src/or/reasons.c
@@ -176,8 +176,8 @@ errno_to_stream_end_reason(int e)
S_CASE(EAFNOSUPPORT):
E_CASE(EACCES):
S_CASE(ENOTCONN):
- S_CASE(ENETUNREACH):
return END_STREAM_REASON_INTERNAL;
+ S_CASE(ENETUNREACH):
S_CASE(EHOSTUNREACH):
return END_STREAM_REASON_NOROUTE;
S_CASE(ECONNREFUSED):