From 23e72feab7cf08661b2900370b97965a78e2cb7d Mon Sep 17 00:00:00 2001 From: terry-xiaoyu <506895667@qq.com> Date: Fri, 31 Aug 2018 01:54:25 +0800 Subject: [PATCH] fix reason codes --- src/emqx_protocol.erl | 15 ++++++++------- src/emqx_reason_codes.erl | 4 ++-- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/emqx_protocol.erl b/src/emqx_protocol.erl index 0bfcdb6dd..c36346673 100644 --- a/src/emqx_protocol.erl +++ b/src/emqx_protocol.erl @@ -407,13 +407,14 @@ connack({?RC_SUCCESS, SP, PState}) -> deliver({connack, ?RC_SUCCESS, sp(SP)}, update_mountpoint(PState)); connack({ReasonCode, PState = #pstate{proto_ver = ProtoVer}}) -> - emqx_hooks:run('client.connected', [credentials(PState), ?RC_SUCCESS, attrs(PState)]), - _ = deliver({connack, if ProtoVer =:= ?MQTT_PROTO_V5 -> - ReasonCode; - true -> - emqx_reason_codes:compat(connack, ReasonCode) - end}, PState), - {error, emqx_reason_codes:name(ReasonCode, ProtoVer), PState}. + emqx_hooks:run('client.connected', [credentials(PState), ReasonCode, attrs(PState)]), + ReasonCode1 = if ProtoVer =:= ?MQTT_PROTO_V5 -> + ReasonCode; + true -> + emqx_reason_codes:compat(connack, ReasonCode) + end, + _ = deliver({connack, ReasonCode1}, PState), + {error, emqx_reason_codes:name(ReasonCode1, ProtoVer), PState}. %%------------------------------------------------------------------------------ %% Publish Message -> Broker diff --git a/src/emqx_reason_codes.erl b/src/emqx_reason_codes.erl index 0cc52acbb..fdc1377ec 100644 --- a/src/emqx_reason_codes.erl +++ b/src/emqx_reason_codes.erl @@ -27,7 +27,8 @@ name(1, _Ver) -> unacceptable_protocol_version; name(2, _Ver) -> client_identifier_not_valid; name(3, _Ver) -> server_unavaliable; name(4, _Ver) -> malformed_username_or_password; -name(5, _Ver) -> unauthorized_client. +name(5, _Ver) -> unauthorized_client; +name(I, _Ver) -> list_to_atom("unkown_connack" ++ integer_to_list(I)). name(16#00) -> success; name(16#01) -> granted_qos1; @@ -139,4 +140,3 @@ compat(connack, 16#9F) -> ?CONNACK_SERVER; compat(suback, Code) when Code =< ?QOS2 -> Code; compat(suback, Code) when Code > 16#80 -> 16#80. -