projects
/
prosody.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge 0.10->trunk
[prosody.git]
/
prosody
diff --git
a/prosody
b/prosody
index b411370fb1f0b63e4d8ed0f9d7c24061525c8545..a2cb0e6cdb09319aa1650d7b51f4597728947aab 100755
(executable)
--- a/
prosody
+++ b/
prosody
@@
-43,15
+43,18
@@
if CFG_DATADIR then
end
end
end
end
+if #arg > 0 and arg[1] ~= "--config" then
+ print("Unknown command-line option: "..tostring(arg[1]));
+ print("Perhaps you meant to use prosodyctl instead?");
+ return 1;
+end
+
-- Global 'prosody' object
local prosody = { events = require "util.events".new(); };
_G.prosody = prosody;
-- Check dependencies
local dependencies = require "util.dependencies";
-- Global 'prosody' object
local prosody = { events = require "util.events".new(); };
_G.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"
-- Load the config-parsing module
config = require "core.configmanager"
@@
-116,8
+119,15
@@
function read_config()
end
end
end
end
+function check_dependencies()
+ if not dependencies.check_dependencies() then
+ os.exit(1);
+ end
+end
+
function load_libraries()
-- Load socket framework
function load_libraries()
-- Load socket framework
+ socket = require "socket";
server = require "net.server"
end
server = require "net.server"
end
@@
-148,9
+158,12
@@
function sandbox_require()
-- for neat sandboxing of modules
local _realG = _G;
local _real_require = 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
-- 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);
end
function require(...)
local curr_env = getfenv(2);
@@
-286,6
+299,7
@@
function load_secondary_libraries()
require "util.import"
require "util.xmppstream"
require "core.stanza_router"
require "util.import"
require "util.xmppstream"
require "core.stanza_router"
+ require "core.statsmanager"
require "core.hostmanager"
require "core.portmanager"
require "core.modulemanager"
require "core.hostmanager"
require "core.portmanager"
require "core.modulemanager"
@@
-364,8
+378,10
@@
function loop()
prosody.events.fire_event("very-bad-error", {error = err, traceback = traceback});
end
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
while select(2, xpcall(server.loop, catch_uncaught_error)) ~= "quitting" do
- s
ocket.s
leep(0.2);
+ sleep(0.2);
end
end
end
end
@@
-382,6
+398,7
@@
init_logging();
sanity_check();
sandbox_require();
set_function_metatable();
sanity_check();
sandbox_require();
set_function_metatable();
+check_dependencies();
load_libraries();
init_global_state();
read_version();
load_libraries();
init_global_state();
read_version();