diff options
author | Matthew Wild <mwild1@gmail.com> | 2009-11-25 05:11:10 +0000 |
---|---|---|
committer | Matthew Wild <mwild1@gmail.com> | 2009-11-25 05:11:10 +0000 |
commit | ff6b4c2c6d8823412bfc4ee7946cd2bf449ea174 (patch) | |
tree | f0046719bbec2124f94240c3627f60f663b41f52 /core/sessionmanager.lua | |
parent | c4742ed7810b3e10bfc6bdb55a11c31b3faf5426 (diff) | |
parent | 4e56a3c519bc0d46a3491ca18cb58c3e8dbb5ae9 (diff) | |
download | prosody-ff6b4c2c6d8823412bfc4ee7946cd2bf449ea174.tar.gz prosody-ff6b4c2c6d8823412bfc4ee7946cd2bf449ea174.zip |
Merge with 0.6 on prosody.imvault/0.6.00.6.0
Diffstat (limited to 'core/sessionmanager.lua')
-rw-r--r-- | core/sessionmanager.lua | 34 |
1 files changed, 22 insertions, 12 deletions
diff --git a/core/sessionmanager.lua b/core/sessionmanager.lua index 08e70d44..5e7fe06d 100644 --- a/core/sessionmanager.lua +++ b/core/sessionmanager.lua @@ -201,22 +201,32 @@ function streamclosed(session) end function send_to_available_resources(user, host, stanza) + local jid = user.."@"..host; local count = 0; - local to = stanza.attr.to; - stanza.attr.to = nil; - local h = hosts[host]; - if h and h.type == "local" then - local u = h.sessions[user]; - if u then - for k, session in pairs(u.sessions) do - if session.presence then - session.send(stanza); - count = count + 1; - end + local user = bare_sessions[jid]; + if user then + for k, session in pairs(user.sessions) do + if session.presence then + session.send(stanza); + count = count + 1; + end + end + end + return count; +end + +function send_to_interested_resources(user, host, stanza) + local jid = user.."@"..host; + local count = 0; + local user = bare_sessions[jid]; + if user then + for k, session in pairs(user.sessions) do + if session.interested then + session.send(stanza); + count = count + 1; end end end - stanza.attr.to = to; return count; end |