diff options
-rw-r--r-- | core/componentmanager.lua | 22 | ||||
-rw-r--r-- | core/hostmanager.lua | 8 |
2 files changed, 6 insertions, 24 deletions
diff --git a/core/componentmanager.lua b/core/componentmanager.lua index 39a5f7ef..fceddcc5 100644 --- a/core/componentmanager.lua +++ b/core/componentmanager.lua @@ -34,28 +34,6 @@ local function default_component_handler(origin, stanza) end end -function load_enabled_components(config) - local defined_hosts = config or configmanager.getconfig(); - - for host, host_config in pairs(defined_hosts) do - if host ~= "*" and ((host_config.core.enabled == nil or host_config.core.enabled) and type(host_config.core.component_module) == "string") then - hosts[host] = create_component(host); - components[host] = default_component_handler; - local ok, err = modulemanager.load(host, host_config.core.component_module); - if not ok then - log("error", "Error loading %s component %s: %s", tostring(host_config.core.component_module), tostring(host), tostring(err)); - else - fire_event("component-activated", host, host_config); - log("debug", "Activated %s component: %s", host_config.core.component_module, host); - end - end - end -end - -if prosody and prosody.events then - prosody.events.add_handler("server-starting", load_enabled_components); -end - function create_component(host, component, events) -- TODO check for host well-formedness return { type = "component", host = host, s2sout = {}, diff --git a/core/hostmanager.lua b/core/hostmanager.lua index 71bc723e..0c91dd80 100644 --- a/core/hostmanager.lua +++ b/core/hostmanager.lua @@ -32,8 +32,10 @@ local function load_enabled_hosts(config) local activated_any_host; for host, host_config in pairs(defined_hosts) do - if host ~= "*" and host_config.core.enabled ~= false and not host_config.core.component_module then - activated_any_host = true; + if host ~= "*" and host_config.core.enabled ~= false then + if not host_config.core.component_module then + activated_any_host = true; + end activate(host, host_config); end end @@ -49,6 +51,7 @@ end prosody_events.add_handler("server-starting", load_enabled_hosts); function activate(host, host_config) + if hosts[host] then return nil, "host-already-exists"; end local host_session = { host = host; s2sout = {}; @@ -74,6 +77,7 @@ function activate(host, host_config) log((hosts_loaded_once and "info") or "debug", "Activated host: %s", host); prosody_events.fire_event("host-activated", host, host_config); + return true; end function deactivate(host, reason) |