Fix jid.split test function
[prosody.git] / main.lua
1 pcall(require, "luarocks.require")
2
3 local server = require "net.server"
4 require "lxp"
5 require "socket"
6 require "ssl"
7
8 function log(type, area, message)
9         print(type, area, message);
10 end
11
12 dofile "lxmppd.cfg"
13
14 -- Maps connections to sessions --
15 sessions = {};
16 hosts = {};
17
18 if config.hosts and #config.hosts > 0 then
19         for _, host in pairs(config.hosts) do
20                 hosts[host] = {type = "local", connected = true, sessions = {}, host = host};
21         end
22 else error("No hosts defined in the configuration file"); end
23
24 -- Load and initialise core modules --
25
26 require "util.import"
27 require "core.xmlhandlers"
28 require "core.rostermanager"
29 require "core.offlinemessage"
30 require "core.modulemanager"
31 require "core.usermanager"
32 require "core.sessionmanager"
33 require "core.stanza_router"
34
35 local start = require "net.connlisteners".start;
36 require "util.stanza"
37 require "util.jid"
38
39 ------------------------------------------------------------------------
40
41 -- Initialise modules
42 if config.modules and #config.modules > 0 then
43         for _, module in pairs(config.modules) do
44                 modulemanager.load(module);
45         end
46 else error("No modules enabled in the configuration file"); end
47
48 -- setup error handling
49 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 }) --]][][[]][];
50
51 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;
52 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;
53
54 -- start listening on sockets
55 start("xmppclient", { ssl = config.ssl_ctx })
56 start("xmppserver", { ssl = config.ssl_ctx })
57
58 server.loop();