aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2014-02-11 18:57:55 -0500
committerNick Mathewson <nickm@torproject.org>2014-02-11 18:57:55 -0500
commit91d4bb0b000e1bdaf8569339a9b843c50e13e47e (patch)
tree444dd4944b9ccc70a6530bb8852bc0ec1fe8d06c
parent8836c1ee2f460422a688781c79760652524c3d6e (diff)
parent0844a262a247d08673040813e2949bc0202d42e4 (diff)
downloadtor-91d4bb0b000e1bdaf8569339a9b843c50e13e47e.tar
tor-91d4bb0b000e1bdaf8569339a9b843c50e13e47e.tar.gz
Merge branch 'bug10777_netunreach_024' into maint-0.2.4
-rw-r--r--changes/10777_netunreach7
-rw-r--r--src/or/reasons.c5
2 files changed, 10 insertions, 2 deletions
diff --git a/changes/10777_netunreach b/changes/10777_netunreach
new file mode 100644
index 000000000..899181423
--- /dev/null
+++ b/changes/10777_netunreach
@@ -0,0 +1,7 @@
+ - Minor bugfixes:
+
+ - Treat ENETUNREACH, EACCES, and EPERM at an exit node as a
+ NOROUTE error, not an INTERNAL error, since they 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 637f8cdc7..6eb2643a8 100644
--- a/src/or/reasons.c
+++ b/src/or/reasons.c
@@ -174,11 +174,12 @@ errno_to_stream_end_reason(int e)
S_CASE(ENOTSOCK):
S_CASE(EPROTONOSUPPORT):
S_CASE(EAFNOSUPPORT):
- E_CASE(EACCES):
S_CASE(ENOTCONN):
- S_CASE(ENETUNREACH):
return END_STREAM_REASON_INTERNAL;
+ S_CASE(ENETUNREACH):
S_CASE(EHOSTUNREACH):
+ E_CASE(EACCES):
+ E_CASE(EPERM):
return END_STREAM_REASON_NOROUTE;
S_CASE(ECONNREFUSED):
return END_STREAM_REASON_CONNECTREFUSED;