X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;f=core%2Fcomponentmanager.lua;h=a63cfd7abee186cb8513c9ccd93432e9efe89735;hb=13ecd9088e5ee2364f89af93f711aad4bb9a23b2;hp=18bf5c02a6a5e2017a0793185f688632c00add83;hpb=e91daa2b1275659b97a1c6287470085eb4077b89;p=prosody.git diff --git a/core/componentmanager.lua b/core/componentmanager.lua index 18bf5c02..a63cfd7a 100644 --- a/core/componentmanager.lua +++ b/core/componentmanager.lua @@ -1,6 +1,27 @@ +-- Prosody IM v0.2 +-- Copyright (C) 2008 Matthew Wild +-- Copyright (C) 2008 Waqas Hussain +-- +-- This program is free software; you can redistribute it and/or +-- modify it under the terms of the GNU General Public License +-- as published by the Free Software Foundation; either version 2 +-- of the License, or (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +-- + + -local log = require "util.logger".init("componentmanager") +local log = require "util.logger".init("componentmanager"); +local module_load = require "core.modulemanager".load; local jid_split = require "util.jid".split; local hosts = hosts; @@ -15,7 +36,7 @@ function handle_stanza(origin, stanza) if not component then component = components[stanza.attr.to]; end -- hack to allow hooking node@server/resource and server/resource if component then log("debug", "stanza being handled by component: "..host); - component(origin, stanza); + component(origin, stanza, hosts[host]); else log("error", "Component manager recieved a stanza for a non-existing component: " .. stanza.attr.to); end @@ -25,11 +46,14 @@ function register_component(host, component) if not hosts[host] then -- TODO check for host well-formedness components[host] = component; - hosts[host] = {type = "component", connected = true}; + hosts[host] = { type = "component", host = host, connected = true, s2sout = {} }; + -- FIXME only load for a.b.c if b.c has dialback, and/or check in config + module_load(host, "dialback"); log("debug", "component added: "..host); + return hosts[host]; else log("error", "Attempt to set component for existing host: "..host); end end -return _M; \ No newline at end of file +return _M;