Clear dup flag if message published first (#2337)
This commit is contained in:
parent
8a73c62f66
commit
5a401c44fd
|
@ -555,7 +555,7 @@ do_publish(Packet = ?PUBLISH_PACKET(QoS, PacketId),
|
|||
PState = #pstate{session = SPid, mountpoint = MountPoint}) ->
|
||||
Msg = emqx_mountpoint:mount(MountPoint,
|
||||
emqx_packet:to_message(credentials(PState), Packet)),
|
||||
puback(QoS, PacketId, emqx_session:publish(SPid, PacketId, Msg), PState).
|
||||
puback(QoS, PacketId, emqx_session:publish(SPid, PacketId, emqx_message:set_flag(dup, false, Msg)), PState).
|
||||
|
||||
%%------------------------------------------------------------------------------
|
||||
%% Puback -> Client
|
||||
|
|
|
@ -941,11 +941,8 @@ enqueue_msg(Msg, State = #state{mqueue = Q, client_id = ClientId, username = Use
|
|||
%% Deliver
|
||||
%%------------------------------------------------------------------------------
|
||||
|
||||
redeliver({PacketId, Msg = #message{qos = QoS}}, State) ->
|
||||
Msg1 = if
|
||||
QoS =:= ?QOS_2 -> Msg;
|
||||
true -> emqx_message:set_flag(dup, Msg)
|
||||
end,
|
||||
redeliver({PacketId, Msg = #message{qos = QoS}}, State) when QoS =/= ?QOS_0 ->
|
||||
Msg1 = emqx_message:set_flag(dup, Msg),
|
||||
do_deliver(PacketId, Msg1, State);
|
||||
|
||||
redeliver({pubrel, PacketId}, #state{deliver_fun = DeliverFun}) ->
|
||||
|
|
Loading…
Reference in New Issue