Annotate

main.lua @ 160:018c7f5ef0ea

Fix nil concat for good this time (\!)
author Matthew Wild <mwild1@gmail.com>
date Fri, 24 Oct 2008 15:20:34 +0100
parent 150:d09b8a1ab046
child 203:5c2e6b9eeeb6
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"
62998e5319e3 Moved hosts to a config file, still need better config though
Matthew Wild <mwild1@gmail.com>
parents: 34
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 = {};
18
ae161e907149 Beginning of new routing logic
Matthew Wild <mwild1@gmail.com>
parents: 12
diff changeset
16
99
ba08b8a4eeef Abstract connections with "connection listeners"
Matthew Wild <mwild1@gmail.com>
parents: 97
diff changeset
17 -- Load and initialise core modules --
ba08b8a4eeef Abstract connections with "connection listeners"
Matthew Wild <mwild1@gmail.com>
parents: 97
diff changeset
18
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
19 require "util.import"
0
3e3171b59028 First commit, where do you want to go tomorrow?
matthew
parents:
diff changeset
20 require "core.stanza_dispatch"
20
6885fd2cf51f Remove some debugging messages
Matthew Wild <mwild1@gmail.com>
parents: 18
diff changeset
21 require "core.xmlhandlers"
0
3e3171b59028 First commit, where do you want to go tomorrow?
matthew
parents:
diff changeset
22 require "core.rostermanager"
3e3171b59028 First commit, where do you want to go tomorrow?
matthew
parents:
diff changeset
23 require "core.offlinemessage"
30
bcf539295f2d Huge commit to:
Matthew Wild <mwild1@gmail.com>
parents: 20
diff changeset
24 require "core.modulemanager"
1
b8787e859fd2 Switched to new connection framework, courtesy of the luadch project
matthew
parents: 0
diff changeset
25 require "core.usermanager"
30
bcf539295f2d Huge commit to:
Matthew Wild <mwild1@gmail.com>
parents: 20
diff changeset
26 require "core.sessionmanager"
bcf539295f2d Huge commit to:
Matthew Wild <mwild1@gmail.com>
parents: 20
diff changeset
27 require "core.stanza_router"
99
ba08b8a4eeef Abstract connections with "connection listeners"
Matthew Wild <mwild1@gmail.com>
parents: 97
diff changeset
28
ba08b8a4eeef Abstract connections with "connection listeners"
Matthew Wild <mwild1@gmail.com>
parents: 97
diff changeset
29 local start = require "net.connlisteners".start;
0
3e3171b59028 First commit, where do you want to go tomorrow?
matthew
parents:
diff changeset
30 require "util.stanza"
3e3171b59028 First commit, where do you want to go tomorrow?
matthew
parents:
diff changeset
31 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
32
99
ba08b8a4eeef Abstract connections with "connection listeners"
Matthew Wild <mwild1@gmail.com>
parents: 97
diff changeset
33 ------------------------------------------------------------------------
133
b92493ea6fd7 Fixed: Works when LuaRocks is not present
Waqas Hussain <waqas20@gmail.com>
parents: 99
diff changeset
34
0
3e3171b59028 First commit, where do you want to go tomorrow?
matthew
parents:
diff changeset
35 -- Locals for faster access --
3e3171b59028 First commit, where do you want to go tomorrow?
matthew
parents:
diff changeset
36 local t_insert = table.insert;
3e3171b59028 First commit, where do you want to go tomorrow?
matthew
parents:
diff changeset
37 local t_concat = table.concat;
3e3171b59028 First commit, where do you want to go tomorrow?
matthew
parents:
diff changeset
38 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
3e3171b59028 First commit, where do you want to go tomorrow?
matthew
parents:
diff changeset
39 local m_random = math.random;
3e3171b59028 First commit, where do you want to go tomorrow?
matthew
parents:
diff changeset
40 local format = string.format;
53
14ea0fe6ca86 Session destruction fixes, some debugging code while we fix the rest. Also change logger to be more useful.
Matthew Wild <mwild1@gmail.com>
parents: 49
diff changeset
41 local sm_new_session, sm_destroy_session = sessionmanager.new_session, sessionmanager.destroy_session; --import("core.sessionmanager", "new_session", "destroy_session");
0
3e3171b59028 First commit, where do you want to go tomorrow?
matthew
parents:
diff changeset
42 local st = stanza;
3e3171b59028 First commit, where do you want to go tomorrow?
matthew
parents:
diff changeset
43 ------------------------------
3e3171b59028 First commit, where do you want to go tomorrow?
matthew
parents:
diff changeset
44
97
c3f12fd0c823 Some tiny changes for main.lua
Matthew Wild <mwild1@gmail.com>
parents: 65
diff changeset
45 local hosts, sessions = hosts, sessions;
0
3e3171b59028 First commit, where do you want to go tomorrow?
matthew
parents:
diff changeset
46
99
ba08b8a4eeef Abstract connections with "connection listeners"
Matthew Wild <mwild1@gmail.com>
parents: 97
diff changeset
47 -- Initialise modules
33
091f91a1f67a Let modules set/write globals
Matthew Wild <mwild1@gmail.com>
parents: 30
diff changeset
48 modulemanager.loadall();
091f91a1f67a Let modules set/write globals
Matthew Wild <mwild1@gmail.com>
parents: 30
diff changeset
49
1
b8787e859fd2 Switched to new connection framework, courtesy of the luadch project
matthew
parents: 0
diff changeset
50 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
51
0
3e3171b59028 First commit, where do you want to go tomorrow?
matthew
parents:
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
99
ba08b8a4eeef Abstract connections with "connection listeners"
Matthew Wild <mwild1@gmail.com>
parents: 97
diff changeset
56 start("xmppclient", { ssl = ssl_ctx })
145
fbb3a4ff9cf1 dialback keys now verified
Matthew Wild <mwild1@gmail.com>
parents: 99
diff changeset
57 start("xmppserver", { ssl = ssl_ctx })
1
b8787e859fd2 Switched to new connection framework, courtesy of the luadch project
matthew
parents: 0
diff changeset
58
b8787e859fd2 Switched to new connection framework, courtesy of the luadch project
matthew
parents: 0
diff changeset
59 server.loop();