Update rostermanager to use new logger
[prosody.git] / main.lua
index 939f4512a87dcd4d2a2b9875b61b3e465260ead5..a9154d439f5f302d5fe789dc6b263eb595f57d37 100644 (file)
--- a/main.lua
+++ b/main.lua
@@ -13,6 +13,13 @@ dofile "lxmppd.cfg"
 
 -- Maps connections to sessions --
 sessions = {};
+hosts = {};
+
+if config.hosts and #config.hosts > 0 then
+       for _, host in pairs(config.hosts) do
+               hosts[host] = {type = "local", connected = true, sessions = {}, host = host, s2sout = {} };
+       end
+else error("No hosts defined in the configuration file"); end
 
 -- Load and initialise core modules --
 
@@ -25,34 +32,30 @@ require "core.usermanager"
 require "core.sessionmanager"
 require "core.stanza_router"
 
+pcall(require, "remdebug.engine");
+if remdebug then remdebug.engine.start() end
+
 local start = require "net.connlisteners".start;
 require "util.stanza"
 require "util.jid"
 
 ------------------------------------------------------------------------
 
--- Locals for faster access --
-local t_insert = table.insert;
-local t_concat = table.concat;
-local t_concatall = function (t, sep) local tt = {}; for _, s in ipairs(t) do t_insert(tt, tostring(s)); end return t_concat(tt, sep); end
-local m_random = math.random;
-local format = string.format;
-local sm_new_session, sm_destroy_session = sessionmanager.new_session, sessionmanager.destroy_session; --import("core.sessionmanager", "new_session", "destroy_session");
-local st = stanza;
-------------------------------
-
-local hosts, sessions = hosts, sessions;
-
 -- Initialise modules
-modulemanager.loadall();
+if config.modules and #config.modules > 0 then
+       for _, module in pairs(config.modules) do
+               modulemanager.load(module);
+       end
+else error("No modules enabled in the configuration file"); end
 
+-- setup error handling
 setmetatable(_G, { __index = function (t, k) print("WARNING: ATTEMPT TO READ A NIL GLOBAL!!!", k); error("Attempt to read a non-existent global. Naughty boy.", 2); end, __newindex = function (t, k, v) print("ATTEMPT TO SET A GLOBAL!!!!", tostring(k).." = "..tostring(v)); error("Attempt to set a global. Naughty boy.", 2); end }) --]][][[]][];
 
-
 local protected_handler = function (conn, data, err) local success, ret = pcall(handler, conn, data, err); if not success then print("ERROR on "..tostring(conn)..": "..ret); conn:close(); end end;
 local protected_disconnect = function (conn, err) local success, ret = pcall(disconnect, conn, err); if not success then print("ERROR on "..tostring(conn).." disconnect: "..ret); conn:close(); end end;
 
-start("xmppclient", { ssl = ssl_ctx })
-start("xmppserver", { ssl = ssl_ctx })
+-- start listening on sockets
+start("xmppclient", { ssl = config.ssl_ctx })
+start("xmppserver", { ssl = config.ssl_ctx })
 
 server.loop();