projects
/
prosody.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
9d986cb
)
MUC: Include the very last message in serialized form to keep it across eviction...
author
Kim Alvefur
<zash@zash.se>
Thu, 28 Apr 2016 21:34:19 +0000
(23:34 +0200)
committer
Kim Alvefur
<zash@zash.se>
Thu, 28 Apr 2016 21:34:19 +0000
(23:34 +0200)
plugins/muc/muc.lib.lua
patch
|
blob
|
history
diff --git
a/plugins/muc/muc.lib.lua
b/plugins/muc/muc.lib.lua
index 337d2ae41f364a48f291f6cac4c54f47e5fddaf0..071f1f8b01f05eaf1a90e86233adf20c7052fcd5 100644
(file)
--- a/
plugins/muc/muc.lib.lua
+++ b/
plugins/muc/muc.lib.lua
@@
-1322,6
+1322,11
@@
function room_mt:freeze(live)
frozen[jid] = st.preserialize(presence);
end
end
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
end
return frozen;
end
@@
-1337,6
+1342,13
@@
function _M.restore_room(frozen)
local room_jid = frozen._jid;
local room = _M.new_room(room_jid, frozen._data);
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);
local occupants = {};
local occupant_sessions = {};
local room_name, room_host = jid_split(room_jid);