Software /
code /
prosody
Changeset
1229:331a68645f67
Automated merge with http://waqas.ath.cx:8000/
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Fri, 29 May 2009 22:06:21 +0100 |
parents | 1228:853d3d76ba94 (diff) 1227:6a587ca99109 (current diff) |
children | 1230:53555f58586f |
files | |
diffstat | 1 files changed, 31 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/core/stanza_router.lua Fri May 29 22:04:57 2009 +0100 +++ b/core/stanza_router.lua Fri May 29 22:06:21 2009 +0100 @@ -124,7 +124,38 @@ local node, host, resource = jid_split(to); local to_bare = node and (node.."@"..host) or host; -- bare JID + local to_type; + if node then + if resource then + to_type = '/full'; + else + to_type = '/bare'; + end + else + if host then + to_type = '/host'; + else + to_type = '/bare'; + end + end + local event_data = {origin=origin, stanza=stanza}; + if origin.full_jid then -- c2s connection + if hosts[origin.host].events.fire_event('pre-'..stanza.name..to_type, event_data); then return; end -- do preprocessing + end + local h = hosts[to_bare] or hosts[host or origin.host]; + if h then + if h.type == "component" then + component_handle_stanza(origin, stanza); + return; + else + if h.events.fire_event(stanza.name..to_type, event_data); then return; end -- do processing + end + else -- non-local recipient + core_route_stanza(origin, stanza); + return; + end + if host and fire_event(host.."/"..stanza.name, event_data) then -- event handled elseif stanza.name == "presence" and origin.host and fire_event(origin.host.."/"..stanza.name, event_data) then