Browse Source

Merge branch 'bug10777_netunreach_024' into maint-0.2.4

Nick Mathewson 10 years ago
parent
commit
91d4bb0b00
2 changed files with 10 additions and 2 deletions
  1. 7 0
      changes/10777_netunreach
  2. 3 2
      src/or/reasons.c

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

+ 3 - 2
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;