@@ -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.
@@ -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;