Reworked the way lxmppd.cfg is used

remotes/origin/sasl
Waqas Hussain 17 years ago
parent fa5531fe41
commit 0ff2eacdaf
  1. 12
      core/modulemanager.lua
  2. 44
      lxmppd.cfg.dist
  3. 32
      main.lua

@ -64,18 +64,6 @@ function modulehelpers.add_handler(origin_type, tag, xmlns, handler)
_add_handler(getfenv(2).module, origin_type, tag, xmlns, handler);
end
function loadall()
load("saslauth");
load("legacyauth");
load("roster");
load("register");
load("tls");
load("vcard");
load("private");
load("version");
load("dialback");
end
function load(name)
local mod, err = loadfile("plugins/mod_"..name..".lua");
if not mod then

@ -1,26 +1,30 @@
---- lxmppd configuration file ----
-- define the local hosts
hosts = {
["localhost"] = {
type = "local";
connected = true;
sessions = {};
config = {
hosts = { -- local hosts
"localhost";
--"snikket.com";
};
["getjabber.ath.cx"] = {
type = "local";
connected = true;
sessions = {};
};
}
-- If the following is commented, no SSL will be set up on 5223
--[[ssl_ctx = {
mode = "server";
protocol = "sslv23";
-- if the following is not defined, no SSL will be set up on 5223
ssl_ctx = {
mode = "server",
protocol = "sslv23",
key = "/home/matthew/ssl_cert/server.key",
certificate = "/home/matthew/ssl_cert/server.crt",
capath = "/etc/ssl/certs", verify = "none",
key = "/home/matthew/ssl_cert/server.key";
certificate = "/home/matthew/ssl_cert/server.crt";
capath = "/etc/ssl/certs";
verify = "none";
};]]
modules = { -- enabled modules
"saslauth";
"legacyauth";
"roster";
"register";
"tls";
"vcard";
"private";
"version";
"dialback";
};
}

@ -13,6 +13,13 @@ dofile "lxmppd.cfg"
-- Maps connections to sessions --
sessions = {};
hosts = {};
if config.hosts and #config.hosts > 0 then
for _, host in pairs(config.hosts) do
hosts[host] = {type = "local", connected = true, sessions = {}};
end
else error("No hosts defined in the configuration file"); end
-- Load and initialise core modules --
@ -31,28 +38,21 @@ require "util.jid"
------------------------------------------------------------------------
-- Locals for faster access --
local t_insert = table.insert;
local t_concat = table.concat;
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
local m_random = math.random;
local format = string.format;
local sm_new_session, sm_destroy_session = sessionmanager.new_session, sessionmanager.destroy_session; --import("core.sessionmanager", "new_session", "destroy_session");
local st = stanza;
------------------------------
local hosts, sessions = hosts, sessions;
-- Initialise modules
modulemanager.loadall();
if config.modules and #config.modules > 0 then
for _, module in pairs(config.modules) do
modulemanager.load(module);
end
else error("No modules enabled in the configuration file"); end
-- setup error handling
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 }) --]][][[]][];
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;
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;
start("xmppclient", { ssl = ssl_ctx })
start("xmppserver", { ssl = ssl_ctx })
-- start listening on sockets
start("xmppclient", { ssl = config.ssl_ctx })
start("xmppserver", { ssl = config.ssl_ctx })
server.loop();

Loading…
Cancel
Save