aboutsummaryrefslogtreecommitdiffstats
path: root/core/presencemanager.lua
diff options
context:
space:
mode:
Diffstat (limited to 'core/presencemanager.lua')
-rw-r--r--core/presencemanager.lua9
1 files changed, 8 insertions, 1 deletions
diff --git a/core/presencemanager.lua b/core/presencemanager.lua
index e4dd6cc4..4d847563 100644
--- a/core/presencemanager.lua
+++ b/core/presencemanager.lua
@@ -103,7 +103,14 @@ function handle_normal_presence(origin, stanza, core_route_stanza)
end
origin.priority = 0;
if stanza.attr.type == "unavailable" then
- origin.presence = nil;
+ origin.presence = nil;
+ if origin.directed then
+ for _, jid in ipairs(origin.directed) do
+ stanza.attr.to = jid;
+ core_route_stanza(origin, stanza);
+ end
+ origin.directed = nil;
+ end
else
origin.presence = stanza;
local priority = stanza:child_with_name("priority");