From e469b6ffb46d974013c77d1a08722ff375b27258 Mon Sep 17 00:00:00 2001 From: Holger Weiss Date: Tue, 21 Mar 2017 18:35:07 +0100 Subject: [PATCH] prosody2ejabberd: Fix offline message record type mod_offline now expects a #message{} rather than an #xmlel{} record. --- src/prosody2ejabberd.erl | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/src/prosody2ejabberd.erl b/src/prosody2ejabberd.erl index dbe568e7c..9d961d8d7 100644 --- a/src/prosody2ejabberd.erl +++ b/src/prosody2ejabberd.erl @@ -341,19 +341,24 @@ el_to_offline_msg(LUser, LServer, #xmlel{attrs = Attrs} = El) -> ({<<"stamp_legacy">>, _}) -> false; (_) -> true end, Attrs), - Packet = El#xmlel{attrs = Attrs1}, - From = jid:decode(fxml:get_attr_s(<<"from">>, Attrs)), - To = jid:decode(fxml:get_attr_s(<<"to">>, Attrs)), - [#offline_msg{ - us = {LUser, LServer}, - timestamp = TS, - expire = never, - from = From, - to = To, - packet = Packet}] + El1 = El#xmlel{attrs = Attrs1}, + case xmpp:decode(El1, ?NS_CLIENT, [ignore_els]) of + #message{from = #jid{} = From, to = #jid{} = To} = Packet -> + [#offline_msg{ + us = {LUser, LServer}, + timestamp = TS, + expire = never, + from = From, + to = To, + packet = Packet}]; + _ -> + [] + end catch _:{bad_timestamp, _} -> []; _:{bad_jid, _} -> + []; + _:{xmpp_codec, _} -> [] end.