Software /
code /
prosody
File
plugins/mod_offline.lua @ 11539:3413fea9e6db 0.11
util.startup: Set more aggressive defaults for GC
Testing has demonstrated that the default GC parameters are not
sufficient to prevent runaway memory growth when running under Lua 5.2
and Lua 5.3.
Setting the GC speed to 500 was tested on Lua versions 5.1->5.4 and did
not display unbounded memory growth.
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Fri, 07 May 2021 16:41:39 +0100 |
parent | 8030:bd3527198308 |
child | 10242:7e5d2a6c9390 |
line wrap: on
line source
-- Prosody IM -- Copyright (C) 2008-2009 Matthew Wild -- Copyright (C) 2008-2009 Waqas Hussain -- -- This project is MIT/X11 licensed. Please see the -- COPYING file in the source package for more information. -- local datetime = require "util.datetime"; local jid_split = require "util.jid".split; local offline_messages = module:open_store("offline", "archive"); module:add_feature("msgoffline"); module:hook("message/offline/handle", function(event) local origin, stanza = event.origin, event.stanza; local to = stanza.attr.to; local node; if to then node = jid_split(to) else node = origin.username; end return offline_messages:append(node, nil, stanza, os.time(), ""); end, -1); module:hook("message/offline/broadcast", function(event) local origin = event.origin; local node, host = origin.username, origin.host; local data = offline_messages:find(node); if not data then return true; end for _, stanza, when in data do stanza:tag("delay", {xmlns = "urn:xmpp:delay", from = host, stamp = datetime.datetime(when)}):up(); -- XEP-0203 origin.send(stanza); end offline_messages:delete(node); return true; end, -1);