Software /
code /
prosody
Changeset
1167:5620ea24be94
stanza_router: Removed global function core_handle_stanza
author | Waqas Hussain <waqas20@gmail.com> |
---|---|
date | Sat, 16 May 2009 01:41:45 +0500 |
parents | 1166:5499a028d4ae |
children | 1168:dd523bfc9ea9 |
files | core/modulemanager.lua core/stanza_router.lua |
diffstat | 2 files changed, 12 insertions(+), 20 deletions(-) [+] |
line wrap: on
line diff
--- a/core/modulemanager.lua Fri May 15 20:38:30 2009 +0100 +++ b/core/modulemanager.lua Sat May 16 01:41:45 2009 +0500 @@ -226,7 +226,14 @@ (handlers[1])(origin, stanza); return true; else - log("debug", "Stanza unhandled by any modules, xmlns: %s", stanza.attr.xmlns); -- we didn't handle it + log("debug", "Unhandled %s stanza: %s; xmlns=%s", origin.type, stanza.name, xmlns); -- we didn't handle it + if stanza.attr.xmlns == "jabber:client" then + if stanza.attr.type ~= "error" and stanza.attr.type ~= "result" then + origin.send(st.error_reply(stanza, "cancel", "service-unavailable")); + end + else + origin:close("unsupported-stanza-type"); + end end end
--- a/core/stanza_router.lua Fri May 15 20:38:30 2009 +0100 +++ b/core/stanza_router.lua Sat May 16 01:41:45 2009 +0500 @@ -113,9 +113,9 @@ if fire_event(tostring(host or origin.host).."/"..stanza.name, event_data) then -- event handled elseif not to then - core_handle_stanza(origin, stanza); + modules_handle_stanza(host or origin.host or origin.to_host, origin, stanza); elseif hosts[to] and hosts[to].type == "local" then -- directed at a local server - core_handle_stanza(origin, stanza); + modules_handle_stanza(host or origin.host or origin.to_host, origin, stanza); elseif hosts[to] and hosts[to].type == "component" then -- hack to allow components to handle node@server/resource and server/resource component_handle_stanza(origin, stanza); elseif hosts[to_bare] and hosts[to_bare].type == "component" then -- hack to allow components to handle node@server @@ -123,27 +123,12 @@ elseif hosts[host] and hosts[host].type == "component" then -- directed at a component component_handle_stanza(origin, stanza); elseif hosts[host] and hosts[host].type == "local" and stanza.name == "iq" and not resource then -- directed at bare JID - core_handle_stanza(origin, stanza); + modules_handle_stanza(host or origin.host or origin.to_host, origin, stanza); else core_route_stanza(origin, stanza); end else - core_handle_stanza(origin, stanza); - end -end - --- This function handles stanzas which are not routed any further, --- that is, they are handled by this server -function core_handle_stanza(origin, stanza) - if not modules_handle_stanza(select(2, jid_split(stanza.attr.to)) or origin.host or origin.to_host, origin, stanza) then - log("warn", "Unhandled %s stanza: %s", origin.type, tostring(stanza)); - if stanza.attr.xmlns == "jabber:client" then - if stanza.attr.type ~= "error" and stanza.attr.type ~= "result" then - origin.send(st.error_reply(stanza, "cancel", "service-unavailable")); - end - else - origin:close("unsupported-stanza-type"); - end + modules_handle_stanza(host or origin.host or origin.to_host, origin, stanza); end end