prosody.net_activate_ports: Slightly refactored and definition moved to before modules are loaded.

Wed, 18 Nov 2009 08:26:43 +0500

author
Waqas Hussain <waqas20@gmail.com>
date
Wed, 18 Nov 2009 08:26:43 +0500
changeset 2086
911251f00f32
parent 2085
64872e216e23
child 2087
5efd79871205

prosody.net_activate_ports: Slightly refactored and definition moved to before modules are loaded.

prosody file | annotate | diff | comparison | revisions
--- 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");

mercurial