Make reason codes of SUBACK be compatible with MQTT V3.1.1
This commit is contained in:
parent
c2c1320083
commit
b7c2821326
|
@ -391,8 +391,13 @@ deliver({pubrel, PacketId}, PState) ->
|
||||||
deliver({pubrec, PacketId, ReasonCode}, PState) ->
|
deliver({pubrec, PacketId, ReasonCode}, PState) ->
|
||||||
send(?PUBREC_PACKET(PacketId, ReasonCode), PState);
|
send(?PUBREC_PACKET(PacketId, ReasonCode), PState);
|
||||||
|
|
||||||
deliver({suback, PacketId, ReasonCodes}, PState) ->
|
deliver({suback, PacketId, ReasonCodes}, PState = #pstate{proto_ver = ProtoVer}) ->
|
||||||
send(?SUBACK_PACKET(PacketId, ReasonCodes), PState);
|
send(?SUBACK_PACKET(PacketId,
|
||||||
|
if ProtoVer =:= ?MQTT_PROTO_V5 ->
|
||||||
|
ReasonCodes;
|
||||||
|
true ->
|
||||||
|
[emqx_reason_codes:compat(suback, RC) || RC <- ReasonCodes]
|
||||||
|
end), PState);
|
||||||
|
|
||||||
deliver({unsuback, PacketId, ReasonCodes}, PState) ->
|
deliver({unsuback, PacketId, ReasonCodes}, PState) ->
|
||||||
send(?UNSUBACK_PACKET(PacketId, ReasonCodes), PState);
|
send(?UNSUBACK_PACKET(PacketId, ReasonCodes), PState);
|
||||||
|
@ -408,11 +413,11 @@ deliver({disconnect, _ReasonCode}, PState) ->
|
||||||
%% Send Packet to Client
|
%% Send Packet to Client
|
||||||
|
|
||||||
-spec(send(mqtt_packet(), state()) -> {ok, state()} | {error, term()}).
|
-spec(send(mqtt_packet(), state()) -> {ok, state()} | {error, term()}).
|
||||||
send(Packet = ?PACKET(Type), PState = #pstate{proto_ver = Ver,
|
send(Packet = ?PACKET(Type), PState = #pstate{proto_ver = Ver, sendfun = SendFun}) ->
|
||||||
sendfun = SendFun}) ->
|
|
||||||
case SendFun(emqx_frame:serialize(Packet, #{version => Ver})) of
|
|
||||||
ok -> emqx_metrics:sent(Packet),
|
|
||||||
trace(send, Packet, PState),
|
trace(send, Packet, PState),
|
||||||
|
case SendFun(emqx_frame:serialize(Packet, #{version => Ver})) of
|
||||||
|
ok ->
|
||||||
|
emqx_metrics:sent(Packet),
|
||||||
{ok, inc_stats(send, Type, PState)};
|
{ok, inc_stats(send, Type, PState)};
|
||||||
{error, Reason} ->
|
{error, Reason} ->
|
||||||
{error, Reason}
|
{error, Reason}
|
||||||
|
|
Loading…
Reference in New Issue