From b7c5463739e34cf0a8740db4a3bd0d0a030822c7 Mon Sep 17 00:00:00 2001 From: Michael Klishin Date: Fri, 1 Aug 2014 10:41:16 +0400 Subject: Enforce server-side value when client provided one is 0 Keeps bogus clients such as node-amqp from ignoring the channel_max limit. --- src/rabbit_reader.erl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 -- cgit v1.2.1