# HG changeset patch # User Kim Alvefur # Date 1461879259 -7200 # Node ID f9744effae04a7b4fbf8e553d1e5d5103f473e09 # Parent f385cd6127b23b73549fe67a0535876958f2f449 MUC: Include the very last message in serialized form to keep it across eviction and restore diff -r f385cd6127b2 -r f9744effae04 plugins/muc/muc.lib.lua --- a/plugins/muc/muc.lib.lua Thu Apr 28 22:57:53 2016 +0200 +++ b/plugins/muc/muc.lib.lua Thu Apr 28 23:34:19 2016 +0200 @@ -1322,6 +1322,11 @@ frozen[jid] = st.preserialize(presence); end end + local history = self._history; + if history then + frozen._last_message = st.preserialize(history[#history].stanza); + frozen._last_message_at = history[#history].timestamp; + end end return frozen; end @@ -1337,6 +1342,13 @@ local room_jid = frozen._jid; local room = _M.new_room(room_jid, frozen._data); + if frozen._last_message and frozen._last_message_at then + room._history = { + { stanza = st.deserialize(frozen._last_message), + timestamp = frozen._last_message_at, }, + }; + end + local occupants = {}; local occupant_sessions = {}; local room_name, room_host = jid_split(room_jid);