From 8734922abbe11196eb6006dee2d93cd3d5dd7386 Mon Sep 17 00:00:00 2001 From: tigercl Date: Fri, 17 Jan 2020 11:37:28 +0800 Subject: [PATCH] Fix rap handling and keep the value of retain flag in bridge mode (#3189) --- src/emqx_session.erl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/emqx_session.erl b/src/emqx_session.erl index 849491952..2b03b7868 100644 --- a/src/emqx_session.erl +++ b/src/emqx_session.erl @@ -516,12 +516,12 @@ enrich_subopts([{qos, SubQoS}|Opts], Msg = #message{qos = PubQoS}, enrich_subopts([{qos, SubQoS}|Opts], Msg = #message{qos = PubQoS}, Session = #session{upgrade_qos = false}) -> enrich_subopts(Opts, Msg#message{qos = min(SubQoS, PubQoS)}, Session); -enrich_subopts([{rap, _}|Opts], Msg = #message{headers = #{retained := true}}, Session) -> - enrich_subopts(Opts, emqx_message:set_flag(retain, true, Msg), Session); -enrich_subopts([{rap, 0}|Opts], Msg, Session) -> - enrich_subopts(Opts, emqx_message:set_flag(retain, false, Msg), Session); enrich_subopts([{rap, 1}|Opts], Msg, Session) -> enrich_subopts(Opts, Msg, Session); +enrich_subopts([{rap, 0}|Opts], Msg = #message{headers = #{retained := true}}, Session) -> + enrich_subopts(Opts, Msg, Session); +enrich_subopts([{rap, 0}|Opts], Msg, Session) -> + enrich_subopts(Opts, emqx_message:set_flag(retain, false, Msg), Session); enrich_subopts([{subid, SubId}|Opts], Msg, Session) -> Msg1 = emqx_message:set_header('Subscription-Identifier', SubId, Msg), enrich_subopts(Opts, Msg1, Session).