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 | 5c45fed93c5f56dc1d48d59c8210127ca0723bdd (patch) | |
| tree | caba4854a7cd0035564c60fd5aff2fe03a8c00b5 /src | |
| parent | ee238be375ac8d4b892a25becd18c5e6d610aab6 (diff) | |
| parent | acccf9bf90fae52d7a3936f11caa360ce6f1c7c0 (diff) | |
| download | rabbitmq-server-git-5c45fed93c5f56dc1d48d59c8210127ca0723bdd.tar.gz | |
merge stable into default
Diffstat (limited to 'src')
| -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 9db607f95b..ea5d0f8189 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 |
