main.lua

Thu, 20 Nov 2008 02:59:40 +0000

author
Matthew Wild <mwild1@gmail.com>
date
Thu, 20 Nov 2008 02:59:40 +0000
changeset 359
8fbfa8f885a6
parent 260
182f0c895676
child 376
6d87944df37c
permissions
-rw-r--r--

Add event for server startup completed: server-started

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"
206
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: 206
diff changeset
16 hosts = {};
1263896ab2f1 Reworked the way lxmppd.cfg is used
Waqas Hussain <waqas20@gmail.com>
parents: 206
diff changeset
17
1263896ab2f1 Reworked the way lxmppd.cfg is used
Waqas Hussain <waqas20@gmail.com>
parents: 206
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: 206
diff changeset
19 for _, host in pairs(config.hosts) do
260
182f0c895676 Now outgoing s2s sessions are associated with their from_host, fixes #15
Matthew Wild <mwild1@gmail.com>
parents: 245
diff changeset
20 hosts[host] = {type = "local", connected = true, sessions = {}, host = host, s2sout = {} };
218
1263896ab2f1 Reworked the way lxmppd.cfg is used
Waqas Hussain <waqas20@gmail.com>
parents: 206
diff changeset
21 end
1263896ab2f1 Reworked the way lxmppd.cfg is used
Waqas Hussain <waqas20@gmail.com>
parents: 206
diff changeset
22 else error("No hosts defined in the configuration file"); end
206
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 --
206
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
245
5dc6ae7b5ce8 Add support for remote debugger
Matthew Wild <mwild1@gmail.com>
parents: 230
diff changeset
35 pcall(require, "remdebug.engine");
5dc6ae7b5ce8 Add support for remote debugger
Matthew Wild <mwild1@gmail.com>
parents: 230
diff changeset
36 if remdebug then remdebug.engine.start() end
5dc6ae7b5ce8 Add support for remote debugger
Matthew Wild <mwild1@gmail.com>
parents: 230
diff changeset
37
99
ba08b8a4eeef Abstract connections with "connection listeners"
Matthew Wild <mwild1@gmail.com>
parents: 97
diff changeset
38 local start = require "net.connlisteners".start;
0
3e3171b59028 First commit, where do you want to go tomorrow?
matthew
parents:
diff changeset
39 require "util.stanza"
3e3171b59028 First commit, where do you want to go tomorrow?
matthew
parents:
diff changeset
40 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
41
99
ba08b8a4eeef Abstract connections with "connection listeners"
Matthew Wild <mwild1@gmail.com>
parents: 97
diff changeset
42 ------------------------------------------------------------------------
133
b92493ea6fd7 Fixed: Works when LuaRocks is not present
Waqas Hussain <waqas20@gmail.com>
parents: 99
diff changeset
43
218
1263896ab2f1 Reworked the way lxmppd.cfg is used
Waqas Hussain <waqas20@gmail.com>
parents: 206
diff changeset
44 -- Initialise modules
1263896ab2f1 Reworked the way lxmppd.cfg is used
Waqas Hussain <waqas20@gmail.com>
parents: 206
diff changeset
45 if config.modules and #config.modules > 0 then
1263896ab2f1 Reworked the way lxmppd.cfg is used
Waqas Hussain <waqas20@gmail.com>
parents: 206
diff changeset
46 for _, module in pairs(config.modules) do
230
e46525f5b2a4 We don't fail if modules fail to load at startup :)
Waqas Hussain <waqas20@gmail.com>
parents: 229
diff changeset
47 modulemanager.load(module);
218
1263896ab2f1 Reworked the way lxmppd.cfg is used
Waqas Hussain <waqas20@gmail.com>
parents: 206
diff changeset
48 end
1263896ab2f1 Reworked the way lxmppd.cfg is used
Waqas Hussain <waqas20@gmail.com>
parents: 206
diff changeset
49 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
50
218
1263896ab2f1 Reworked the way lxmppd.cfg is used
Waqas Hussain <waqas20@gmail.com>
parents: 206
diff changeset
51 -- setup error handling
1
b8787e859fd2 Switched to new connection framework, courtesy of the luadch project
matthew
parents: 0
diff changeset
52 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
53
20
6885fd2cf51f Remove some debugging messages
Matthew Wild <mwild1@gmail.com>
parents: 18
diff changeset
54 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
55 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
56
218
1263896ab2f1 Reworked the way lxmppd.cfg is used
Waqas Hussain <waqas20@gmail.com>
parents: 206
diff changeset
57 -- start listening on sockets
1263896ab2f1 Reworked the way lxmppd.cfg is used
Waqas Hussain <waqas20@gmail.com>
parents: 206
diff changeset
58 start("xmppclient", { ssl = config.ssl_ctx })
1263896ab2f1 Reworked the way lxmppd.cfg is used
Waqas Hussain <waqas20@gmail.com>
parents: 206
diff changeset
59 start("xmppserver", { ssl = config.ssl_ctx })
1
b8787e859fd2 Switched to new connection framework, courtesy of the luadch project
matthew
parents: 0
diff changeset
60
359
8fbfa8f885a6 Add event for server startup completed: server-started
Matthew Wild <mwild1@gmail.com>
parents: 260
diff changeset
61 modulemanager.fire_event("server-started");
8fbfa8f885a6 Add event for server startup completed: server-started
Matthew Wild <mwild1@gmail.com>
parents: 260
diff changeset
62
1
b8787e859fd2 Switched to new connection framework, courtesy of the luadch project
matthew
parents: 0
diff changeset
63 server.loop();

mercurial