]> granicus.if.org Git - ejabberd/commitdiff
mod_mam: Don't strip offline message stanza IDs
authorHolger Weiss <holger@zedat.fu-berlin.de>
Thu, 26 Jul 2018 22:27:10 +0000 (00:27 +0200)
committerHolger Weiss <holger@zedat.fu-berlin.de>
Thu, 26 Jul 2018 22:27:10 +0000 (00:27 +0200)
As mod_offline currently doesn't preserve metadata, add an explicit
check for messages retrieved from offline storage to avoid stripping
their stanza IDs.

Thanks to Zuglufttier for spotting this.

src/mod_mam.erl

index 7c5d3af61667d22656241a14a65eff251b6af41c..2a43322c8092283369465131c0bb14910b76918a 100644 (file)
@@ -419,6 +419,8 @@ get_stanza_id(#message{meta = #{stanza_id := ID}}) ->
 -spec init_stanza_id(stanza(), binary()) -> stanza().
 init_stanza_id(#message{meta = #{stanza_id := _ID}} = Pkt, _LServer) ->
     Pkt;
+init_stanza_id(#message{meta = #{from_offline := true}} = Pkt, _LServer) ->
+    Pkt;
 init_stanza_id(Pkt, LServer) ->
     ID = p1_time_compat:system_time(micro_seconds),
     Pkt1 = strip_my_stanza_id(Pkt, LServer),