From 4a4883f9b14955d356cfa934e412eaa180219d3e Mon Sep 17 00:00:00 2001 From: turtled Date: Thu, 16 Jan 2020 16:05:41 +0800 Subject: [PATCH] Fix mqtt3.1/3.1.1 retain flag error bug --- src/emqx_session.erl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/emqx_session.erl b/src/emqx_session.erl index 2b719f699..7e52fca9e 100644 --- a/src/emqx_session.erl +++ b/src/emqx_session.erl @@ -889,6 +889,8 @@ process_subopts([{rap, 0}|Opts], Msg = #message{flags = Flags, headers = #{proto process_subopts(Opts, Msg#message{flags = maps:put(retain, false, Flags)}, Session); process_subopts([{rap, _}|Opts], Msg = #message{headers = #{proto_ver := ?MQTT_PROTO_V5}}, Session) -> process_subopts(Opts, Msg, Session); +process_subopts([{rap, 1}|Opts], Msg, Session) -> + process_subopts(Opts, Msg, Session); process_subopts([{rap, _}|Opts], Msg = #message{headers = #{retained := true}}, Session = #session{}) -> process_subopts(Opts, Msg, Session); process_subopts([{rap, _}|Opts], Msg = #message{flags = Flags}, Session) ->