Fix for broadcasting presence of available resources to newly approved contact
authorWaqas Hussain <waqas20@gmail.com>
Mon, 17 Nov 2008 05:24:47 +0000 (10:24 +0500)
committerWaqas Hussain <waqas20@gmail.com>
Mon, 17 Nov 2008 05:24:47 +0000 (10:24 +0500)
core/presencemanager.lua

index 03a3710de443d962c316bb1a76a2c4b9e5f765cf..4a555712879c4fdd7a00e2777e001aba555da5dc 100644 (file)
@@ -13,7 +13,7 @@ local sessionmanager = require "core.sessionmanager";
 \r
 module "presencemanager"\r
 \r
-function send_presence_of_available_resources(user, host, jid, recipient_session)\r
+function send_presence_of_available_resources(user, host, jid, recipient_session, core_route_stanza)\r
        local h = hosts[host];\r
        local count = 0;\r
        if h and h.type == "local" then\r
@@ -24,7 +24,7 @@ function send_presence_of_available_resources(user, host, jid, recipient_session
                                if pres then\r
                                        pres.attr.to = jid;\r
                                        pres.attr.from = session.full_jid;\r
-                                       recipient_session.send(pres);\r
+                                       core_route_stanza(recipient_session, pres);\r
                                        pres.attr.to = nil;\r
                                        pres.attr.from = nil;\r
                                        count = count + 1;\r
@@ -61,7 +61,7 @@ function handle_outbound_presence_subscriptions_and_probes(origin, stanza, from_
                if rostermanager.subscribed(node, host, to_bare) then\r
                        rostermanager.roster_push(node, host, to_bare);\r
                        core_route_stanza(origin, stanza);\r
-                       send_presence_of_available_resources(node, host, to_bare, origin);\r
+                       send_presence_of_available_resources(node, host, to_bare, origin, core_route_stanza);\r
                end\r
        elseif stanza.attr.type == "unsubscribed" then\r
                -- 1. route stanza\r
@@ -81,7 +81,7 @@ function handle_inbound_presence_subscriptions_and_probes(origin, stanza, from_b
        log("debug", "inbound presence "..stanza.attr.type.." from "..from_bare.." for "..to_bare);\r
        if stanza.attr.type == "probe" then\r
                if rostermanager.is_contact_subscribed(node, host, from_bare) then\r
-                       if 0 == send_presence_of_available_resources(node, host, from_bare, origin) then\r
+                       if 0 == send_presence_of_available_resources(node, host, from_bare, origin, core_route_stanza) then\r
                                -- TODO send last recieved unavailable presence (or we MAY do nothing, which is fine too)\r
                        end\r
                else\r