aboutsummaryrefslogtreecommitdiffstats
path: root/prosody
diff options
context:
space:
mode:
Diffstat (limited to 'prosody')
-rwxr-xr-xprosody19
1 files changed, 10 insertions, 9 deletions
diff --git a/prosody b/prosody
index 446dbfb7..47998583 100755
--- a/prosody
+++ b/prosody
@@ -121,6 +121,7 @@ end
function load_libraries()
-- Load socket framework
+ socket = require "socket";
server = require "net.server"
end
@@ -151,9 +152,12 @@ function sandbox_require()
-- for neat sandboxing of modules
local _realG = _G;
local _real_require = require;
- if not getfenv then
+ local getfenv = getfenv or function (f)
-- FIXME: This is a hack to replace getfenv() in Lua 5.2
- function getfenv(f) return debug.getupvalue(debug.getinfo(f or 1).func, 1); end
+ local name, env = debug.getupvalue(debug.getinfo(f or 1).func, 1);
+ if name == "_ENV" then
+ return env;
+ end
end
function require(...)
local curr_env = getfenv(2);
@@ -268,12 +272,6 @@ function init_global_state()
prosody.events.fire_event("server-stopping", {reason = reason});
server.setquitting(true);
end
-
- -- Load SSL settings from config, and create a ctx table
- local certmanager = require "core.certmanager";
- local global_ssl_ctx = certmanager.create_context("*", "server");
- prosody.global_ssl_ctx = global_ssl_ctx;
-
end
function read_version()
@@ -295,6 +293,7 @@ function load_secondary_libraries()
require "util.import"
require "util.xmppstream"
require "core.stanza_router"
+ require "core.statsmanager"
require "core.hostmanager"
require "core.portmanager"
require "core.modulemanager"
@@ -373,8 +372,10 @@ function loop()
prosody.events.fire_event("very-bad-error", {error = err, traceback = traceback});
end
+ local sleep = require"socket".sleep;
+
while select(2, xpcall(server.loop, catch_uncaught_error)) ~= "quitting" do
- socket.sleep(0.2);
+ sleep(0.2);
end
end