Software /
code /
prosody
Changeset
2086:911251f00f32
prosody.net_activate_ports: Slightly refactored and definition moved to before modules are loaded.
author | Waqas Hussain <waqas20@gmail.com> |
---|---|
date | Wed, 18 Nov 2009 08:26:43 +0500 |
parents | 2085:64872e216e23 |
children | 2087:5efd79871205 |
files | prosody |
diffstat | 1 files changed, 36 insertions(+), 35 deletions(-) [+] |
line wrap: on
line diff
--- a/prosody Wed Nov 18 06:23:41 2009 +0500 +++ b/prosody Wed Nov 18 08:26:43 2009 +0500 @@ -153,6 +153,40 @@ prosody.events.fire_event("server-stopping", {reason = reason}); server.setquitting(true); end + + -- Load SSL settings from config, and create a ctx table + local global_ssl_ctx = rawget(_G, "ssl") and config.get("*", "core", "ssl"); + if global_ssl_ctx then + local default_ssl_ctx = { mode = "server", protocol = "sslv23", capath = "/etc/ssl/certs", verify = "none"; }; + setmetatable(global_ssl_ctx, { __index = default_ssl_ctx }); + end + + local cl = require "net.connlisteners"; + function prosody.net_activate_ports(option, listener, default, conntype) + conntype = conntype or (global_ssl_ctx and "tls") or "tcp"; + if not cl.get(listener) then return; end + local ports = config.get("*", "core", option.."_ports") 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.."_ports: "..tostring(port)); + else + cl.start(listener, { + ssl = conntype ~= "tcp" and global_ssl_ctx, + port = port, + interface = config.get("*", "core", option.."_interface") + or cl.get(listener).default_interface + or config.get("*", "core", "interface"), + type = conntype + }); + end + end + end + end end function read_version() @@ -220,42 +254,9 @@ eventmanager.fire_event("server-starting"); prosody.events.fire_event("server-starting"); - -- Load SSL settings from config, and create a ctx table - local global_ssl_ctx = rawget(_G, "ssl") and config.get("*", "core", "ssl"); - if global_ssl_ctx then - local default_ssl_ctx = { mode = "server", protocol = "sslv23", capath = "/etc/ssl/certs", verify = "none"; }; - setmetatable(global_ssl_ctx, { __index = default_ssl_ctx }); - end - - local cl = require "net.connlisteners"; -- start listening on sockets - function prosody.net_activate_ports(option, listener, default, conntype) - if not cl.get(listener) then return; end - local ports = config.get("*", "core", option.."_ports") 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.."_ports: "..tostring(port)); - else - cl.start(listener, { - ssl = conntype ~= "tcp" and global_ssl_ctx, - port = port, - interface = config.get("*", "core", option.."_interface") - or cl.get(listener).default_interface - or config.get("*", "core", "interface"), - type = conntype - }); - end - end - end - end - - prosody.net_activate_ports("c2s", "xmppclient", {5222}, (global_ssl_ctx and "tls") or "tcp"); - prosody.net_activate_ports("s2s", "xmppserver", {5269}, (global_ssl_ctx and "tls") or "tcp"); + prosody.net_activate_ports("c2s", "xmppclient", {5222}); + prosody.net_activate_ports("s2s", "xmppserver", {5269}); prosody.net_activate_ports("component", "xmppcomponent", {}, "tcp"); prosody.net_activate_ports("legacy_ssl", "xmppclient", {}, "ssl"); prosody.net_activate_ports("console", "console", {5582}, "tcp");