X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;f=prosody;h=1a58fd33fc0228a4f661888966b2ed57ceedc7c7;hb=73c40baf36d68b9146289d1a7be9836b4a0a9ea6;hp=8dcb0096de6f8457043b10213f13eb8ca57165e3;hpb=7a6ab6461ea53d99fb6fb011949e6a66ffa7a609;p=prosody.git diff --git a/prosody b/prosody index 8dcb0096..1a58fd33 100755 --- a/prosody +++ b/prosody @@ -127,6 +127,19 @@ function log_dependency_warnings() dependencies.log_warnings(); end +function sanity_check() + for host, host_config in pairs(configmanager.getconfig()) do + if host ~= "*" + and host_config.core.enabled ~= false + and not host_config.core.component_module then + return; + end + end + log("error", "No enabled VirtualHost entries found in the config file."); + log("error", "At least one active host is required for Prosody to function. Exiting..."); + os.exit(1); +end + function sandbox_require() -- Replace require() with one that doesn't pollute _G, required -- for neat sandboxing of modules @@ -184,8 +197,14 @@ function init_global_state() prosody.hosts = hosts; local data_path = config.get("*", "core", "data_path") or CFG_DATADIR or "data"; + local custom_plugin_paths = config.get("*", "core", "plugin_paths"); + if custom_plugin_paths then + local path_sep = package.config:sub(3,3); + -- path1;path2;path3;defaultpath... + CFG_PLUGINDIR = table.concat(custom_plugin_paths, path_sep)..path_sep..(CFG_PLUGINDIR or "plugins"); + end prosody.paths = { source = CFG_SOURCEDIR, config = CFG_CONFIGDIR, - plugins = CFG_PLUGINDIR, data = data_path }; + plugins = CFG_PLUGINDIR or "plugins", data = data_path }; prosody.arg = _G.arg; @@ -339,6 +358,7 @@ function load_secondary_libraries() ]] require "net.connlisteners"; + require "net.httpserver"; require "util.stanza" require "util.jid" @@ -456,6 +476,7 @@ end -- previous steps to have already been performed read_config(); init_logging(); +sanity_check(); sandbox_require(); set_function_metatable(); load_libraries();