Browse Source

Report EADDRNOTAVAIL and EADDRINUSE as RESOURCELIMIT

These errors usually mean address exhaustion; reporting them as such
lets clients adjust their load to try other exits.

Fix for bug 4710; bugfix on 0.1.0.1-rc, which started using
END_STREAM_REASON_RESOURCELIMIT.
Nick Mathewson 12 years ago
parent
commit
2b6e91c2ee
2 changed files with 7 additions and 0 deletions
  1. 5 0
      changes/bug4710
  2. 2 0
      src/or/reasons.c

+ 5 - 0
changes/bug4710

@@ -0,0 +1,5 @@
+  o Minor bugfixes:
+    - Exit nodes now correcly report EADDRINUSE and EADDRNOTAVAIL as
+      resource exhaustion, so that clients can adjust their load to
+      try other exits. Fix for bug 4710; bugfix on 0.1.0.1-rc, which
+      started using END_STREAM_REASON_RESOURCELIMIT.

+ 2 - 0
src/or/reasons.c

@@ -184,6 +184,8 @@ errno_to_stream_end_reason(int e)
     S_CASE(ENOBUFS):
     case ENOMEM:
     case ENFILE:
+    S_CASE(EADDRINUSE):
+    S_CASE(EADDRNOTAVAIL):
     E_CASE(EMFILE):
       return END_STREAM_REASON_RESOURCELIMIT;
     default: