From: Nick Mathewson Date: Mon, 10 Feb 2014 02:30:23 +0000 (-0500) Subject: Call ENETUNREACH a case of NOROUTE, not a case of INTERNAL. X-Git-Tag: tor-0.2.5.2-alpha~6^2^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f5d32c08ba0b7307873324f8b24c4142523c1155;p=thirdparty%2Ftor.git 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. --- 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):