diff options
author | Matthew Wild <mwild1@gmail.com> | 2008-12-24 18:48:09 +0000 |
---|---|---|
committer | Matthew Wild <mwild1@gmail.com> | 2008-12-24 18:48:09 +0000 |
commit | 8661b3a502e85126500cb4a05d509ec85bc3c24d (patch) | |
tree | 4a1f7ecaa3740c4965c494f6f69442cd189b2d66 /core/modulemanager.lua | |
parent | e0cb7cec734ca29f49870f5633cfc738e320f232 (diff) | |
download | prosody-8661b3a502e85126500cb4a05d509ec85bc3c24d.tar.gz prosody-8661b3a502e85126500cb4a05d509ec85bc3c24d.zip |
Fix for not loading global modules when host-specific modules are specified in config
Diffstat (limited to 'core/modulemanager.lua')
-rw-r--r-- | core/modulemanager.lua | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/core/modulemanager.lua b/core/modulemanager.lua index da5945ac..2617c7a6 100644 --- a/core/modulemanager.lua +++ b/core/modulemanager.lua @@ -53,6 +53,24 @@ local modulehelpers = setmetatable({}, { __index = _G }); -- Load modules when a host is activated function load_modules_for_host(host) + -- Load modules from global section + local modules_enabled = config.get("*", "core", "modules_enabled"); + local modules_disabled = config.get(host, "core", "modules_disabled"); + local disabled_set = {}; + if modules_enabled then + if modules_disabled then + for _, module in pairs(modules_disabled) do + disabled_set[module] = true; + end + end + for _, module in pairs(modules_enabled) do + if not disabled_set[module] then + load(host, module); + end + end + end + + -- Load modules from just this host local modules_enabled = config.get(host, "core", "modules_enabled"); if modules_enabled then for _, module in pairs(modules_enabled) do |