aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2012-05-16 12:31:45 -0400
committerNick Mathewson <nickm@torproject.org>2012-05-16 12:46:24 -0400
commit2b6e91c2ee4f89c0ee31c83c3a5e5414fd2b3d40 (patch)
treed4fc8705f41242f0732b2b4e219978963e4f2d69
parent75fc4dbbcabaedc715f0f9e883ccab1c9634e787 (diff)
downloadtor-2b6e91c2ee4f89c0ee31c83c3a5e5414fd2b3d40.tar
tor-2b6e91c2ee4f89c0ee31c83c3a5e5414fd2b3d40.tar.gz
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.
-rw-r--r--changes/bug47105
-rw-r--r--src/or/reasons.c2
2 files changed, 7 insertions, 0 deletions
diff --git a/changes/bug4710 b/changes/bug4710
new file mode 100644
index 000000000..7f94b4d20
--- /dev/null
+++ b/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.
diff --git a/src/or/reasons.c b/src/or/reasons.c
index 319e6c055..67abc350d 100644
--- a/src/or/reasons.c
+++ b/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: