aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Wild <mwild1@gmail.com>2010-12-20 14:06:16 +0000
committerMatthew Wild <mwild1@gmail.com>2010-12-20 14:06:16 +0000
commit44bf454dd5af3036b29302b73622a9a1e5e0db12 (patch)
treebcb6459ad810cfb0f97a105641a28e70c6498e2c
parent7cc4ae96d4315892682a5dc35083ef463aa6f71e (diff)
downloadprosody-44bf454dd5af3036b29302b73622a9a1e5e0db12.tar.gz
prosody-44bf454dd5af3036b29302b73622a9a1e5e0db12.zip
prosody, prosodyctl, util.dependencies: Split checking and logging of dependencies so we can check hard deps before the config and logging is loaded
-rwxr-xr-xprosody15
-rwxr-xr-xprosodyctl9
-rw-r--r--util/dependencies.lua13
3 files changed, 23 insertions, 14 deletions
diff --git a/prosody b/prosody
index 061f3781..d4bf7578 100755
--- a/prosody
+++ b/prosody
@@ -35,6 +35,12 @@ end
prosody = { events = require "util.events".new(); };
local prosody = prosody;
+-- Check dependencies
+local dependencies = require "util.dependencies";
+if not dependencies.check_dependencies() then
+ os.exit(1);
+end
+
-- Load the config-parsing module
config = require "core.configmanager"
@@ -99,11 +105,8 @@ function init_logging()
require "core.loggingmanager"
end
-function check_dependencies()
- -- Check runtime dependencies
- if not require "util.dependencies".check_dependencies() then
- os.exit(1);
- end
+function log_dependency_warnings()
+ dependencies.log_warnings();
end
function sandbox_require()
@@ -442,13 +445,13 @@ end
-- previous steps to have already been performed
read_config();
init_logging();
-check_dependencies();
sandbox_require();
set_function_metatable();
load_libraries();
init_global_state();
read_version();
log("info", "Hello and welcome to Prosody version %s", prosody.version);
+log_dependency_warnings();
load_secondary_libraries();
init_data_store();
init_global_protection();
diff --git a/prosodyctl b/prosodyctl
index cfc5ca77..9630a9b8 100755
--- a/prosodyctl
+++ b/prosodyctl
@@ -41,6 +41,11 @@ prosody = {
};
local prosody = prosody;
+local dependencies = require "util.dependencies";
+if not dependencies.check_dependencies() then
+ os.exit(1);
+end
+
config = require "core.configmanager"
do
@@ -94,9 +99,7 @@ config.set("*", "core", "log", { { levels = { min="info" }, to = "console" } });
require "core.loggingmanager"
-if not require "util.dependencies".check_dependencies() then
- os.exit(1);
-end
+dependencies.log_warnings();
local data_path = config.get("*", "core", "data_path") or CFG_DATADIR or "data";
require "util.datamanager".set_data_path(data_path);
diff --git a/util/dependencies.lua b/util/dependencies.lua
index 6024dd63..9371521c 100644
--- a/util/dependencies.lua
+++ b/util/dependencies.lua
@@ -78,11 +78,6 @@ function check_dependencies()
["luarocks"] = "luarocks install luasec";
["Source"] = "http://www.inf.puc-rio.br/~brunoos/luasec/";
}, "SSL/TLS support will not be available");
- else
- local major, minor, veryminor, patched = ssl._VERSION:match("(%d+)%.(%d+)%.?(%d*)(M?)");
- if not major or ((tonumber(major) == 0 and (tonumber(minor) or 0) <= 3 and (tonumber(veryminor) or 0) <= 2) and patched ~= "M") then
- log("error", "This version of LuaSec contains a known bug that causes disconnects, see http://prosody.im/doc/depends");
- end
end
local encodings, err = softreq "util.encodings"
@@ -121,5 +116,13 @@ function check_dependencies()
return not fatal;
end
+function log_warnings()
+ if ssl then
+ local major, minor, veryminor, patched = ssl._VERSION:match("(%d+)%.(%d+)%.?(%d*)(M?)");
+ if not major or ((tonumber(major) == 0 and (tonumber(minor) or 0) <= 3 and (tonumber(veryminor) or 0) <= 2) and patched ~= "M") then
+ log("error", "This version of LuaSec contains a known bug that causes disconnects, see http://prosody.im/doc/depends");
+ end
+ end
+end
return _M;