projects
/
prosody.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
mod_s2s: Fix interaction between s2s_secure_auth and s2s_require_encryption, in parti...
[prosody.git]
/
plugins
/
mod_presence.lua
diff --git
a/plugins/mod_presence.lua
b/plugins/mod_presence.lua
index 077bc31fa6cd520f346abd04bc558d6974df802a..8dac2d358a68d8c348a4c7b737785258e7ffdf74 100644
(file)
--- a/
plugins/mod_presence.lua
+++ b/
plugins/mod_presence.lua
@@
-9,7
+9,7
@@
local log = module._log;
local require = require;
local log = module._log;
local require = require;
-local pairs
, ipairs = pairs, i
pairs;
+local pairs
=
pairs;
local t_concat, t_insert = table.concat, table.insert;
local s_find = string.find;
local tonumber = tonumber;
local t_concat, t_insert = table.concat, table.insert;
local s_find = string.find;
local tonumber = tonumber;
@@
-18,7
+18,10
@@
local core_post_stanza = prosody.core_post_stanza;
local st = require "util.stanza";
local jid_split = require "util.jid".split;
local jid_bare = require "util.jid".bare;
local st = require "util.stanza";
local jid_split = require "util.jid".split;
local jid_bare = require "util.jid".bare;
-local hosts = hosts;
+local datetime = require "util.datetime";
+local hosts = prosody.hosts;
+local bare_sessions = prosody.bare_sessions;
+local full_sessions = prosody.full_sessions;
local NULL = {};
local rostermanager = require "core.rostermanager";
local NULL = {};
local rostermanager = require "core.rostermanager";
@@
-116,8
+119,8
@@
function handle_normal_presence(origin, stanza)
end
if priority >= 0 then
end
if priority >= 0 then
-
local event = { origin = origin }
-
module:fire_event('message/offline/broadcast', event);
+ local event = { origin = origin }
+ module:fire_event('message/offline/broadcast', event);
end
end
if stanza.attr.type == "unavailable" then
end
end
if stanza.attr.type == "unavailable" then
@@
-135,6
+138,7
@@
function handle_normal_presence(origin, stanza)
end
else
origin.presence = stanza;
end
else
origin.presence = stanza;
+ stanza:tag("delay", { xmlns = "urn:xmpp:delay", from = host, stamp = datetime.datetime() }):up();
if origin.priority ~= priority then
origin.priority = priority;
recalc_resource_map(user);
if origin.priority ~= priority then
origin.priority = priority;
recalc_resource_map(user);
@@
-342,7
+346,7
@@
module:hook("presence/full", function(data)
end);
module:hook("presence/host", function(data)
-- inbound presence to the host
end);
module:hook("presence/host", function(data)
-- inbound presence to the host
- local
origin, stanza = data.origin,
data.stanza;
+ local
stanza =
data.stanza;
local from_bare = jid_bare(stanza.attr.from);
local t = stanza.attr.type;
local from_bare = jid_bare(stanza.attr.from);
local t = stanza.attr.type;