Comparison

main.lua @ 18:ae161e907149

Beginning of new routing logic
author Matthew Wild <mwild1@gmail.com>
date Tue, 26 Aug 2008 13:14:43 +0100
parent 12:90f22275f7ae
child 20:6885fd2cf51f
comparison
equal deleted inserted replaced
14:780bcad913f3 18:ae161e907149
6 require "lxp" 6 require "lxp"
7 7
8 function log(type, area, message) 8 function log(type, area, message)
9 print(type, area, message); 9 print(type, area, message);
10 end 10 end
11 11
12 require "core.stanza_dispatch" 12 require "core.stanza_dispatch"
13 local init_xmlhandlers = require "core.xmlhandlers" 13 local init_xmlhandlers = require "core.xmlhandlers"
14 require "core.rostermanager" 14 require "core.rostermanager"
15 require "core.offlinemessage" 15 require "core.offlinemessage"
16 require "core.usermanager" 16 require "core.usermanager"
17 require "util.stanza" 17 require "util.stanza"
18 require "util.jid" 18 require "util.jid"
19 19
20 -- Locals for faster access -- 20 -- Locals for faster access --
21 local t_insert = table.insert; 21 local t_insert = table.insert;
22 local t_concat = table.concat; 22 local t_concat = table.concat;
23 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 23 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
24 local m_random = math.random; 24 local m_random = math.random;
46 certificate = "/home/matthew/ssl_cert/server.crt", capath = "/etc/ssl/certs", verify = "none", } 46 certificate = "/home/matthew/ssl_cert/server.crt", capath = "/etc/ssl/certs", verify = "none", }
47 47
48 48
49 function connect_host(host) 49 function connect_host(host)
50 hosts[host] = { type = "remote", sendbuffer = {} }; 50 hosts[host] = { type = "remote", sendbuffer = {} };
51 end
52
53 local function route_stanza(stanza)
54 if not stanza.attr.to then
55 -- Has no 'to' attribute, handle internally
56 end
57 local node, host, resource = jid.split(stanza.attr.to);
58 if host and hosts[host] and hosts[host].type == "local" then
59 -- Is a local host, handle internally
60
61 else
62 -- Is not for us or a local user, route accordingly
63 end
51 end 64 end
52 65
53 local function send_to(session, to, stanza) 66 local function send_to(session, to, stanza)
54 local node, host, resource = jid.split(to); 67 local node, host, resource = jid.split(to);
55 if not hosts[host] then 68 if not hosts[host] then