Browse Source

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.
Nick Mathewson 10 years ago
parent
commit
f5d32c08ba
2 changed files with 8 additions and 1 deletions
  1. 7 0
      changes/10777_netunreach
  2. 1 1
      src/or/reasons.c

+ 7 - 0
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.
+

+ 1 - 1
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):