summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Sackman <matthew@lshift.net>2010-05-19 17:31:35 +0100
committerMatthew Sackman <matthew@lshift.net>2010-05-19 17:31:35 +0100
commit7691d5ad3340077af860cecad258a46565bfe346 (patch)
treeb784bb69b9c30abc3ae3f80ac29d5d54fe61ec5e
parent94e6e489f75a359a85151ba9eb0bbfa34126cbcb (diff)
parent21ed6f3bbcff2da929feb4ef7146f0ecbb9718fd (diff)
downloadrabbitmq-server-7691d5ad3340077af860cecad258a46565bfe346.tar.gz
Merging bug 21239 into default
-rw-r--r--src/rabbit_reader.erl7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/rabbit_reader.erl b/src/rabbit_reader.erl
index 5cf519b7..c6bd2973 100644
--- a/src/rabbit_reader.erl
+++ b/src/rabbit_reader.erl
@@ -52,6 +52,7 @@
-define(NORMAL_TIMEOUT, 3).
-define(CLOSING_TIMEOUT, 1).
-define(CHANNEL_TERMINATION_TIMEOUT, 3).
+-define(SLEEP_BEFORE_SILENT_CLOSE, 3000).
%---------------------------------------------------------------------------
@@ -575,7 +576,11 @@ handle_method0(MethodName, FieldsBin, State) ->
end,
case State#v1.connection_state of
running -> send_exception(State, 0, CompleteReason);
- Other -> throw({channel0_error, Other, CompleteReason})
+ %% We don't trust the client at this point - force
+ %% them to wait for a bit so they can't DOS us with
+ %% repeated failed logins etc.
+ Other -> timer:sleep(?SLEEP_BEFORE_SILENT_CLOSE),
+ throw({channel0_error, Other, CompleteReason})
end
end.