summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Klishin <michael@rabbitmq.com>2014-08-01 10:41:16 +0400
committerMichael Klishin <michael@rabbitmq.com>2014-08-01 10:41:16 +0400
commitb7c5463739e34cf0a8740db4a3bd0d0a030822c7 (patch)
tree1e0aa632f657e5c178e6464df7b093d3174b8b3a
parent322a5f539e269c56d6a8c8af27f576c266b668b9 (diff)
downloadrabbitmq-server-b7c5463739e34cf0a8740db4a3bd0d0a030822c7.tar.gz
Enforce server-side value when client provided one is 0
Keeps bogus clients such as node-amqp from ignoring the channel_max limit.
-rw-r--r--src/rabbit_reader.erl3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/rabbit_reader.erl b/src/rabbit_reader.erl
index ddaf205e..68cef56a 100644
--- a/src/rabbit_reader.erl
+++ b/src/rabbit_reader.erl
@@ -971,7 +971,8 @@ validate_negotiated_integer_value(Field, Min, ClientValue) ->
ServerValue = get_env(Field),
if ClientValue /= 0 andalso ClientValue < Min ->
fail_negotiation(Field, min, ServerValue, ClientValue);
- ServerValue /= 0 andalso ClientValue > ServerValue ->
+ ServerValue /= 0 andalso (ClientValue =:= 0 orelse
+ ClientValue > ServerValue) ->
fail_negotiation(Field, max, ServerValue, ClientValue);
true ->
ok