commit f5d32c08ba0b7307873324f8b24c4142523c1155 Author: Nick Mathewson nickm@torproject.org Date: Sun Feb 9 21:30:23 2014 -0500
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. --- changes/10777_netunreach | 7 +++++++ src/or/reasons.c | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/changes/10777_netunreach b/changes/10777_netunreach new file mode 100644 index 0000000..369774f --- /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 637f8cd..fc31a43 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):