aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorMatthew Wild <mwild1@gmail.com>2009-11-25 05:11:10 +0000
committerMatthew Wild <mwild1@gmail.com>2009-11-25 05:11:10 +0000
commitff6b4c2c6d8823412bfc4ee7946cd2bf449ea174 (patch)
treef0046719bbec2124f94240c3627f60f663b41f52 /core
parentc4742ed7810b3e10bfc6bdb55a11c31b3faf5426 (diff)
parent4e56a3c519bc0d46a3491ca18cb58c3e8dbb5ae9 (diff)
downloadprosody-ff6b4c2c6d8823412bfc4ee7946cd2bf449ea174.tar.gz
prosody-ff6b4c2c6d8823412bfc4ee7946cd2bf449ea174.zip
Merge with 0.6 on prosody.imvault/0.6.00.6.0
Diffstat (limited to 'core')
-rw-r--r--core/loggingmanager.lua6
-rw-r--r--core/sessionmanager.lua34
2 files changed, 28 insertions, 12 deletions
diff --git a/core/loggingmanager.lua b/core/loggingmanager.lua
index c26fdc71..4154e1a7 100644
--- a/core/loggingmanager.lua
+++ b/core/loggingmanager.lua
@@ -17,6 +17,12 @@ local math_max, rep = math.max, string.rep;
local os_date, os_getenv = os.date, os.getenv;
local getstyle, getstring = require "util.termcolours".getstyle, require "util.termcolours".getstring;
+if os.getenv("__FLUSH_LOG") then
+ local io_flush = io.flush;
+ local _io_write = io_write;
+ io_write = function(...) _io_write(...); io_flush(); end
+end
+
local config = require "core.configmanager";
local eventmanager = require "core.eventmanager";
local logger = require "util.logger";
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