diff options
author | Michael Klishin <michael@rabbitmq.com> | 2014-08-01 11:37:30 +0400 |
---|---|---|
committer | Michael Klishin <michael@rabbitmq.com> | 2014-08-01 11:37:30 +0400 |
commit | 26474538d10799ab6f8c25be1218477c4b15a114 (patch) | |
tree | d03b8bc37b924dbc3f7e04ae67f8a7214581e81b | |
parent | 322a5f539e269c56d6a8c8af27f576c266b668b9 (diff) | |
parent | 5b5f2b6d55580f9039127a02afa1f6add4045c93 (diff) | |
download | rabbitmq-server-26474538d10799ab6f8c25be1218477c4b15a114.tar.gz |
merge bug26313 into stable
-rw-r--r-- | src/rabbit_reader.erl | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/rabbit_reader.erl b/src/rabbit_reader.erl index ddaf205e..fd5dc208 100644 --- a/src/rabbit_reader.erl +++ b/src/rabbit_reader.erl @@ -596,10 +596,13 @@ handle_exception(State = #v1{connection = #connection{protocol = Protocol}, State1 = close_connection(terminate_channels(State)), ok = send_on_channel0(State1#v1.sock, CloseMethod, Protocol), State1; -handle_exception(State, Channel, Reason) -> +handle_exception(State = #v1{connection_state = tuning, + connection = #connection{name = S}}, Channel, Reason) -> %% 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. timer:sleep(?SILENT_CLOSE_DELAY * 1000), + log(error, "AMQP connection ~p (~s) handshake error:~n~p~n", + [self(), S, Reason]), throw({handshake_error, State#v1.connection_state, Channel, Reason}). %% we've "lost sync" with the client and hence must not accept any @@ -971,7 +974,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 |