aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorMatthew Wild <mwild1@gmail.com>2008-12-24 18:48:09 +0000
committerMatthew Wild <mwild1@gmail.com>2008-12-24 18:48:09 +0000
commit8661b3a502e85126500cb4a05d509ec85bc3c24d (patch)
tree4a1f7ecaa3740c4965c494f6f69442cd189b2d66 /core
parente0cb7cec734ca29f49870f5633cfc738e320f232 (diff)
downloadprosody-8661b3a502e85126500cb4a05d509ec85bc3c24d.tar.gz
prosody-8661b3a502e85126500cb4a05d509ec85bc3c24d.zip
Fix for not loading global modules when host-specific modules are specified in config
Diffstat (limited to 'core')
-rw-r--r--core/modulemanager.lua18
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