aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/componentmanager.lua55
1 files changed, 2 insertions, 53 deletions
diff --git a/core/componentmanager.lua b/core/componentmanager.lua
index dfc2cd78..de783db0 100644
--- a/core/componentmanager.lua
+++ b/core/componentmanager.lua
@@ -6,57 +6,16 @@
-- COPYING file in the source package for more information.
--
-local prosody = _G.prosody;
local log = require "util.logger".init("componentmanager");
-local certmanager = require "core.certmanager";
-local configmanager = require "core.configmanager";
-local modulemanager = require "core.modulemanager";
-local jid_split = require "util.jid".split;
-local fire_event = prosody.events.fire_event;
-local events_new = require "util.events".new;
-local st = require "util.stanza";
local prosody, hosts = prosody, prosody.hosts;
-local uuid_gen = require "util.uuid".generate;
-
-local pairs, setmetatable, type, tostring = pairs, setmetatable, type, tostring;
local components = {};
module "componentmanager"
-local function default_component_handler(origin, stanza)
- log("warn", "Stanza being handled by default component; bouncing error for: %s", stanza:top_tag());
- if stanza.attr.type ~= "error" and stanza.attr.type ~= "result" then
- origin.send(st.error_reply(stanza, "wait", "service-unavailable", "Component unavailable"));
- end
-end
-
-function create_component(host, component, events)
- -- TODO check for host well-formedness
- return { type = "component", host = host, s2sout = {},
- events = events or events_new(),
- dialback_secret = configmanager.get(host, "core", "dialback_secret") or uuid_gen(),
- disallow_s2s = configmanager.get(host, "core", "disallow_s2s"); };
-end
-
function register_component(host, component)
- if not hosts[host] or hosts[host].type == 'component' then
- local old_events = hosts[host] and hosts[host].events;
-
+ if hosts[host] and hosts[host].type == 'component' then
components[host] = component;
- hosts[host] = create_component(host, component, old_events);
-
- -- Add events object if not already one
- if not hosts[host].events then
- hosts[host].events = old_events or events_new();
- end
-
- if not hosts[host].dialback_secret then
- hosts[host].dialback_secret = configmanager.get(host, "core", "dialback_secret") or uuid_gen();
- end
-
- modulemanager.load(host, "dialback");
- modulemanager.load(host, "tls");
log("debug", "component added: "..host);
return hosts[host];
else
@@ -66,17 +25,7 @@ end
function deregister_component(host)
if components[host] then
- modulemanager.unload(host, "tls");
- modulemanager.unload(host, "dialback");
- local host_config = configmanager.getconfig()[host];
- if host_config and ((host_config.core.enabled == nil or host_config.core.enabled) and type(host_config.core.component_module) == "string") then
- -- Set default handler
- components[host] = default_component_handler;
- else
- -- Component not in config, or disabled, remove
- hosts[host] = nil; -- FIXME do proper unload of all modules and other cleanup before removing
- components[host] = nil;
- end
+ components[host] = nil;
log("debug", "component removed: "..host);
return true;
else