Software /
code /
prosody
Changeset
2852:56630a6c9a31
mod_presence: Don't depend on user being online when calculating top resources.
author | Waqas Hussain <waqas20@gmail.com> |
---|---|
date | Fri, 12 Feb 2010 00:55:06 +0500 (2010-02-11) |
parents | 2851:dcd1c0a90b2f |
children | 2853:91143b35a755 |
files | plugins/mod_presence.lua |
diffstat | 1 files changed, 7 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/plugins/mod_presence.lua Fri Feb 12 00:54:14 2010 +0500 +++ b/plugins/mod_presence.lua Fri Feb 12 00:55:06 2010 +0500 @@ -55,10 +55,11 @@ end return recipients; end -local function recalc_resource_map(origin) - local user = hosts[origin.host].sessions[origin.username]; - user.top_resources = select_top_resources(user); - if #user.top_resources == 0 then user.top_resources = nil; end +local function recalc_resource_map(user) + if user then + user.top_resources = select_top_resources(user); + if #user.top_resources == 0 then user.top_resources = nil; end + end end function handle_normal_presence(origin, stanza, core_route_stanza) @@ -117,7 +118,7 @@ origin.presence = nil; if origin.priority then origin.priority = nil; - recalc_resource_map(origin); + recalc_resource_map(user); end if origin.directed then for jid in pairs(origin.directed) do @@ -139,7 +140,7 @@ else priority = 0; end if origin.priority ~= priority then origin.priority = priority; - recalc_resource_map(origin); + recalc_resource_map(user); end end stanza.attr.to = nil; -- reset it