X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;f=prosody;h=98d15da2a6c3783c5b6f3b31dd26e38eb7101308;hb=04e58425b9ccf5f83845bbe02266be8e6a32cd36;hp=042d0212816fdb017135e8dcdbc6b1e76e4d6cf6;hpb=087bc8fd635ce8cc42fb5952b1ab5c2043244738;p=prosody.git diff --git a/prosody b/prosody index 042d0212..98d15da2 100755 --- a/prosody +++ b/prosody @@ -1,5 +1,5 @@ #!/usr/bin/env lua --- Prosody IM v0.1 +-- Prosody IM v0.2 -- Copyright (C) 2008 Matthew Wild -- Copyright (C) 2008 Waqas Hussain -- @@ -18,8 +18,6 @@ -- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -- - - -- Config here -- CFG_SOURCEDIR=nil; @@ -47,6 +45,9 @@ pcall(require, "luarocks.require") config = require "core.configmanager" log = require "util.logger".init("general"); +-- Disable log output, needs to read from config +-- require "util.logger".setwriter(function () end); + do -- TODO: Check for other formats when we add support for them -- Use lfs? Make a new conf/ dir? @@ -114,7 +115,7 @@ function mkdir(path) path = path:gsub("/", path_separator); local x = io.popen("mkdir \""..path.."\" 2>&1"):read("*a"); end -function encode(s) return s and (s:gsub("%W", function (c) return string.format("%%%x", c:byte()); end)); end +function encode(s) return s and (s:gsub("%W", function (c) return string.format("%%%02x", c:byte()); end)); end function mkdirs(host) if not _mkdir[host] then local host_dir = string.format("%s/%s", data_path, encode(host)); @@ -146,8 +147,25 @@ if global_ssl_ctx then end -- start listening on sockets -cl.start("xmppclient", { ssl = global_ssl_ctx }) -cl.start("xmppserver", { ssl = global_ssl_ctx }) +local function do_ports(option, listener, default, key) + local ports = config.get("*", "core", option) or default; + --if type(ports) == "number" then ports = {ports} end; + if type(ports) ~= "table" then + log("error", "core."..option.." is not a table"); + else + for _, port in ipairs(ports) do + if type(port) ~= "number" then + log("error", "Non-numeric "..option..": "..tostring(port)); + else + cl.start(listener, { ssl = global_ssl_ctx, [key] = port }); + end + end + end +end + +do_ports("c2s_ports", "xmppclient", {5222}, "port"); +do_ports("s2s_ports", "xmppserver", {5269}, "port"); +do_ports("legacy_ssl_ports", "xmppclient", {}, "legacy_ssl_port"); if config.get("*", "core", "console_enabled") then if cl.get("console") then