Merge presence/subscription support from waqas
[prosody.git] / core / sessionmanager.lua
index 2b7659d26d36b76c7f46c88924d0689e332bb8f3..82a001c1107d090e6d29aa9dd93f6c22a9a5e897 100644 (file)
@@ -34,7 +34,7 @@ function new_session(conn)
 end
 
 function destroy_session(session)
-       session.log("info", "Destroying session");
+       (session.log or log)("info", "Destroying session");
        if session.host and session.username then
                if session.resource then
                        hosts[session.host].sessions[session.username].sessions[session.resource] = nil;
@@ -115,4 +115,24 @@ function streamopened(session, attr)
                                                session.notopen = nil;
 end
 
+function send_to_available_resources(user, host, stanza)
+       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
+                       end
+               end
+       end
+       stanza.attr.to = to;
+       return count;
+end
+
 return _M;
\ No newline at end of file