Annotate

main.lua @ 229:01bd24ea488d

We now fail if modules fail to load at startup.
author Waqas Hussain <waqas20@gmail.com>
date Sun, 09 Nov 2008 04:26:25 +0500
parent 224:4b1e30ddd2bb
child 230:e46525f5b2a4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
133
b92493ea6fd7 Fixed: Works when LuaRocks is not present
Waqas Hussain <waqas20@gmail.com>
parents: 99
diff changeset
1 pcall(require, "luarocks.require")
0
3e3171b59028 First commit, where do you want to go tomorrow?
matthew
parents:
diff changeset
2
97
c3f12fd0c823 Some tiny changes for main.lua
Matthew Wild <mwild1@gmail.com>
parents: 65
diff changeset
3 local server = require "net.server"
99
ba08b8a4eeef Abstract connections with "connection listeners"
Matthew Wild <mwild1@gmail.com>
parents: 97
diff changeset
4 require "lxp"
0
3e3171b59028 First commit, where do you want to go tomorrow?
matthew
parents:
diff changeset
5 require "socket"
3e3171b59028 First commit, where do you want to go tomorrow?
matthew
parents:
diff changeset
6 require "ssl"
3e3171b59028 First commit, where do you want to go tomorrow?
matthew
parents:
diff changeset
7
3e3171b59028 First commit, where do you want to go tomorrow?
matthew
parents:
diff changeset
8 function log(type, area, message)
3e3171b59028 First commit, where do you want to go tomorrow?
matthew
parents:
diff changeset
9 print(type, area, message);
3e3171b59028 First commit, where do you want to go tomorrow?
matthew
parents:
diff changeset
10 end
36
62998e5319e3 Moved hosts to a config file, still need better config though
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
11
62998e5319e3 Moved hosts to a config file, still need better config though
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
12 dofile "lxmppd.cfg"
207
90c387884234 A little whitespace fix
Waqas Hussain <waqas20@gmail.com>
parents: 203
diff changeset
13
99
ba08b8a4eeef Abstract connections with "connection listeners"
Matthew Wild <mwild1@gmail.com>
parents: 97
diff changeset
14 -- Maps connections to sessions --
36
62998e5319e3 Moved hosts to a config file, still need better config though
Matthew Wild <mwild1@gmail.com>
parents: 34
diff changeset
15 sessions = {};
218
1263896ab2f1 Reworked the way lxmppd.cfg is used
Waqas Hussain <waqas20@gmail.com>
parents: 207
diff changeset
16 hosts = {};
1263896ab2f1 Reworked the way lxmppd.cfg is used
Waqas Hussain <waqas20@gmail.com>
parents: 207
diff changeset
17
1263896ab2f1 Reworked the way lxmppd.cfg is used
Waqas Hussain <waqas20@gmail.com>
parents: 207
diff changeset
18 if config.hosts and #config.hosts > 0 then
1263896ab2f1 Reworked the way lxmppd.cfg is used
Waqas Hussain <waqas20@gmail.com>
parents: 207
diff changeset
19 for _, host in pairs(config.hosts) do
224
4b1e30ddd2bb Add host field to local host sessions
Matthew Wild <mwild1@gmail.com>
parents: 218
diff changeset
20 hosts[host] = {type = "local", connected = true, sessions = {}, host = host};
218
1263896ab2f1 Reworked the way lxmppd.cfg is used
Waqas Hussain <waqas20@gmail.com>
parents: 207
diff changeset
21 end
1263896ab2f1 Reworked the way lxmppd.cfg is used
Waqas Hussain <waqas20@gmail.com>
parents: 207
diff changeset
22 else error("No hosts defined in the configuration file"); end
207
90c387884234 A little whitespace fix
Waqas Hussain <waqas20@gmail.com>
parents: 203
diff changeset
23
99
ba08b8a4eeef Abstract connections with "connection listeners"
Matthew Wild <mwild1@gmail.com>
parents: 97
diff changeset
24 -- Load and initialise core modules --
207
90c387884234 A little whitespace fix
Waqas Hussain <waqas20@gmail.com>
parents: 203
diff changeset
25
49
1cd2a8db392d New "import" module to help tidy up all the local declarations at the top of modules
Matthew Wild <mwild1@gmail.com>
parents: 38
diff changeset
26 require "util.import"
20
6885fd2cf51f Remove some debugging messages
Matthew Wild <mwild1@gmail.com>
parents: 18
diff changeset
27 require "core.xmlhandlers"
0
3e3171b59028 First commit, where do you want to go tomorrow?
matthew
parents:
diff changeset
28 require "core.rostermanager"
3e3171b59028 First commit, where do you want to go tomorrow?
matthew
parents:
diff changeset
29 require "core.offlinemessage"
30
bcf539295f2d Huge commit to:
Matthew Wild <mwild1@gmail.com>
parents: 20
diff changeset
30 require "core.modulemanager"
1
b8787e859fd2 Switched to new connection framework, courtesy of the luadch project
matthew
parents: 0
diff changeset
31 require "core.usermanager"
30
bcf539295f2d Huge commit to:
Matthew Wild <mwild1@gmail.com>
parents: 20
diff changeset
32 require "core.sessionmanager"
bcf539295f2d Huge commit to:
Matthew Wild <mwild1@gmail.com>
parents: 20
diff changeset
33 require "core.stanza_router"
99
ba08b8a4eeef Abstract connections with "connection listeners"
Matthew Wild <mwild1@gmail.com>
parents: 97
diff changeset
34
ba08b8a4eeef Abstract connections with "connection listeners"
Matthew Wild <mwild1@gmail.com>
parents: 97
diff changeset
35 local start = require "net.connlisteners".start;
0
3e3171b59028 First commit, where do you want to go tomorrow?
matthew
parents:
diff changeset
36 require "util.stanza"
3e3171b59028 First commit, where do you want to go tomorrow?
matthew
parents:
diff changeset
37 require "util.jid"
49
1cd2a8db392d New "import" module to help tidy up all the local declarations at the top of modules
Matthew Wild <mwild1@gmail.com>
parents: 38
diff changeset
38
99
ba08b8a4eeef Abstract connections with "connection listeners"
Matthew Wild <mwild1@gmail.com>
parents: 97
diff changeset
39 ------------------------------------------------------------------------
133
b92493ea6fd7 Fixed: Works when LuaRocks is not present
Waqas Hussain <waqas20@gmail.com>
parents: 99
diff changeset
40
218
1263896ab2f1 Reworked the way lxmppd.cfg is used
Waqas Hussain <waqas20@gmail.com>
parents: 207
diff changeset
41 -- Initialise modules
1263896ab2f1 Reworked the way lxmppd.cfg is used
Waqas Hussain <waqas20@gmail.com>
parents: 207
diff changeset
42 if config.modules and #config.modules > 0 then
1263896ab2f1 Reworked the way lxmppd.cfg is used
Waqas Hussain <waqas20@gmail.com>
parents: 207
diff changeset
43 for _, module in pairs(config.modules) do
229
01bd24ea488d We now fail if modules fail to load at startup.
Waqas Hussain <waqas20@gmail.com>
parents: 224
diff changeset
44 if not modulemanager.load(module) then
01bd24ea488d We now fail if modules fail to load at startup.
Waqas Hussain <waqas20@gmail.com>
parents: 224
diff changeset
45 error("Unable to load module "..module);
01bd24ea488d We now fail if modules fail to load at startup.
Waqas Hussain <waqas20@gmail.com>
parents: 224
diff changeset
46 end
218
1263896ab2f1 Reworked the way lxmppd.cfg is used
Waqas Hussain <waqas20@gmail.com>
parents: 207
diff changeset
47 end
1263896ab2f1 Reworked the way lxmppd.cfg is used
Waqas Hussain <waqas20@gmail.com>
parents: 207
diff changeset
48 else error("No modules enabled in the configuration file"); end
0
3e3171b59028 First commit, where do you want to go tomorrow?
matthew
parents:
diff changeset
49
218
1263896ab2f1 Reworked the way lxmppd.cfg is used
Waqas Hussain <waqas20@gmail.com>
parents: 207
diff changeset
50 -- setup error handling
1
b8787e859fd2 Switched to new connection framework, courtesy of the luadch project
matthew
parents: 0
diff changeset
51 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 }) --]][][[]][];
b8787e859fd2 Switched to new connection framework, courtesy of the luadch project
matthew
parents: 0
diff changeset
52
20
6885fd2cf51f Remove some debugging messages
Matthew Wild <mwild1@gmail.com>
parents: 18
diff changeset
53 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;
6885fd2cf51f Remove some debugging messages
Matthew Wild <mwild1@gmail.com>
parents: 18
diff changeset
54 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;
1
b8787e859fd2 Switched to new connection framework, courtesy of the luadch project
matthew
parents: 0
diff changeset
55
218
1263896ab2f1 Reworked the way lxmppd.cfg is used
Waqas Hussain <waqas20@gmail.com>
parents: 207
diff changeset
56 -- start listening on sockets
1263896ab2f1 Reworked the way lxmppd.cfg is used
Waqas Hussain <waqas20@gmail.com>
parents: 207
diff changeset
57 start("xmppclient", { ssl = config.ssl_ctx })
1263896ab2f1 Reworked the way lxmppd.cfg is used
Waqas Hussain <waqas20@gmail.com>
parents: 207
diff changeset
58 start("xmppserver", { ssl = config.ssl_ctx })
1
b8787e859fd2 Switched to new connection framework, courtesy of the luadch project
matthew
parents: 0
diff changeset
59
b8787e859fd2 Switched to new connection framework, courtesy of the luadch project
matthew
parents: 0
diff changeset
60 server.loop();