diff options
author | Michael Klishin <michael@rabbitmq.com> | 2014-08-01 11:42:34 +0400 |
---|---|---|
committer | Michael Klishin <michael@rabbitmq.com> | 2014-08-01 11:42:34 +0400 |
commit | 4dd82c92c113bae870d5e4653e361083c2ca82ce (patch) | |
tree | caba4854a7cd0035564c60fd5aff2fe03a8c00b5 | |
parent | dc83827fb49c6d19c32d95c10e311a86460ad926 (diff) | |
parent | 2e4ab5a49c1d374b488e1841e6c7d752e8181c5d (diff) | |
download | rabbitmq-server-4dd82c92c113bae870d5e4653e361083c2ca82ce.tar.gz |
merge stable into default
-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 9db607f9..ea5d0f81 100644 --- a/src/rabbit_reader.erl +++ b/src/rabbit_reader.erl @@ -611,10 +611,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 @@ -986,7 +989,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 |