From 701c632e074505eef76f2d10d7656ae27be992f0 Mon Sep 17 00:00:00 2001 From: Feng Lee Date: Tue, 23 Jan 2018 11:09:42 +0800 Subject: [PATCH] Fix issue #1461 - keep the retain flag for new subscription --- src/emqttd_protocol.erl | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/emqttd_protocol.erl b/src/emqttd_protocol.erl index d021c9e1f..eaa81e092 100644 --- a/src/emqttd_protocol.erl +++ b/src/emqttd_protocol.erl @@ -563,8 +563,11 @@ sp(false) -> 0. %% The retained flag should be propagated for bridge. %%-------------------------------------------------------------------- -clean_retain(false, Msg = #mqtt_message{retain = true}) -> - Msg#mqtt_message{retain = false}; +clean_retain(false, Msg = #mqtt_message{retain = true, headers = Headers}) -> + case lists:member(retained, Headers) of + true -> Msg; + false -> Msg#mqtt_message{retain = false} + end; clean_retain(_IsBridge, Msg) -> Msg.