main.lua
author Matthew Wild <mwild1@gmail.com>
Wed, 01 May 2013 13:54:00 +0100
branchs2s
changeset 5558 774ab5f2efa6
parent 145 fbb3a4ff9cf1
child 150 d09b8a1ab046
permissions -rw-r--r--
Close 's2s' branch
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
3e3171b59028 First commit, where do you want to go tomorrow?
matthew
parents:
diff changeset
     1
require "luarocks.require"
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
------------------------------------------------------------------------
18
ae161e907149 Beginning of new routing logic
Matthew Wild <mwild1@gmail.com>
parents: 12
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();