Software /
code /
prosody
Diff
core/stanza_router.lua @ 210:e679487e2fa4
Part 2 of internal components. Should have mentioned that the previous commit was from waqas, this one from me.
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Tue, 04 Nov 2008 18:17:48 +0000 |
parent | 209:e9de0803676d |
child | 215:ec90acc13ba3 |
line wrap: on
line diff
--- a/core/stanza_router.lua Tue Nov 04 18:15:56 2008 +0000 +++ b/core/stanza_router.lua Tue Nov 04 18:17:48 2008 +0000 @@ -75,6 +75,8 @@ core_handle_stanza(origin, stanza); elseif hosts[to] and hosts[to].type == "local" then -- directed at a local server core_handle_stanza(origin, stanza); + elseif stanza.attr.xmlns and stanza.attr.xmlns ~= "jabber:client" and stanza.attr.xmlns ~= "jabber:server" then + modules_handle_stanza(origin, stanza); elseif hosts[to_bare] and hosts[to_bare].type == "component" then -- hack to allow components to handle node@server component_handle_stanza(origin, stanza); elseif hosts[to] and hosts[to].type == "component" then -- hack to allow components to handle node@server/resource and server/resource @@ -85,8 +87,6 @@ handle_outbound_presence_subscriptions_and_probes(origin, stanza, from_bare, to_bare); elseif stanza.name == "iq" and not resource then -- directed at bare JID core_handle_stanza(origin, stanza); - elseif stanza.attr.xmlns and stanza.attr.xmlns ~= "jabber:client" and stanza.attr.xmlns ~= "jabber:server" then - modules_handle_stanza(origin, stanza); elseif origin.type == "c2s" or origin.type == "s2sin" then core_route_stanza(origin, stanza); else @@ -370,6 +370,12 @@ log("debug", "sending s2s stanza: %s", tostring(stanza)); send_s2s(origin.host, host, stanza); -- TODO handle remote routing errors stanza.attr.xmlns = xmlns; -- reset + elseif origin.type == "component" or origin.type == "local" then + -- Route via s2s for components and modules + log("debug", "Routing outgoing stanza for %s to %s", origin.host, host); + for k,v in pairs(origin) do print("origin:", tostring(k), tostring(v)); end + print(tostring(host), tostring(from_host)) + send_s2s(origin.host, host, stanza); else log("warn", "received stanza from unhandled connection type: %s", origin.type); end @@ -379,3 +385,5 @@ function handle_stanza_toremote(stanza) log("error", "Stanza bound for remote host, but s2s is not implemented"); end + +