Diff

core/sessionmanager.lua @ 2168:1a99a3bf3ce6 0.6.0

Merge with 0.6 on prosody.im
author Matthew Wild <mwild1@gmail.com>
date Wed, 25 Nov 2009 05:11:10 +0000
parent 2141:f544729f9228
child 2144:8e59d37a0e68
child 2816:59dfb99831ae
line wrap: on
line diff
--- a/core/sessionmanager.lua	Wed Nov 25 03:30:00 2009 +0000
+++ b/core/sessionmanager.lua	Wed Nov 25 05:11:10 2009 +0000
@@ -201,22 +201,32 @@
 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
-	stanza.attr.to = to;
+	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
 	return count;
 end