Merge 0.9->trunk
authorKim Alvefur <zash@zash.se>
Fri, 23 Nov 2012 01:51:53 +0100
changeset 5199 e6fedce399eb
parent 5196 a63c4ad6cb36 (current diff)
parent 5198 430797a8fc81 (diff)
child 5201 99cb5170a2ea
Merge 0.9->trunk
--- a/net/server.lua	Thu Nov 22 21:57:35 2012 +0000
+++ b/net/server.lua	Fri Nov 23 01:51:53 2012 +0100
@@ -36,9 +36,41 @@
 		end
 	end
 else
+	use_luaevent = false;
 	server = require "net.server_select";
 end
 
+if prosody then
+	local config_get = require "core.configmanager".get;
+	local function load_config()
+		local settings = config_get("*", "core", "network_settings");
+		if use_luaevent then
+			local event_settings = {
+				ACCEPT_DELAY = settings.event_accept_retry_interval;
+				CLEAR_DELAY = settings.event_clear_interval;
+				CONNECT_TIMEOUT = settings.connect_timeout;
+				DEBUG = settings.debug;
+				HANDSHAKE_TIMEOUT = settings.ssl_handshake_timeout;
+				MAX_CONNECTIONS = settings.max_connections;
+				MAX_HANDSHAKE_ATTEMPTS = settings.max_ssl_handshake_roundtrips;
+				MAX_READ_LENGTH = settings.max_receive_buffer_size;
+				MAX_SEND_LENGTH = settings.max_send_buffer_size;
+				READ_TIMEOUT = settings.read_timeout;
+				WRITE_TIMEOUT = settings.send_timeout;
+			};
+
+			for k, v in pairs(event_settings) do
+				server.cfg[k] = v;
+			end
+			return true;
+		else
+			return server.changesettings(settings);
+		end
+	end
+	load_config();
+	prosody.events.add_handler("config-reloaded", load_config);
+end
+
 -- require "net.server" shall now forever return this,
 -- ie. server_select or server_event as chosen above.
 return server;
--- a/net/server_select.lua	Thu Nov 22 21:57:35 2012 +0000
+++ b/net/server_select.lua	Fri Nov 23 01:51:53 2012 +0100
@@ -749,16 +749,16 @@
 	if type( new ) ~= "table" then
 		return nil, "invalid settings table"
 	end
-	_selecttimeout = tonumber( new.timeout ) or _selecttimeout
-	_sleeptime = tonumber( new.sleeptime ) or _sleeptime
-	_maxsendlen = tonumber( new.maxsendlen ) or _maxsendlen
-	_maxreadlen = tonumber( new.maxreadlen ) or _maxreadlen
-	_checkinterval = tonumber( new.checkinterval ) or _checkinterval
-	_sendtimeout = tonumber( new.sendtimeout ) or _sendtimeout
-	_readtimeout = tonumber( new.readtimeout ) or _readtimeout
-	_cleanqueue = new.cleanqueue
-	_maxclientsperserver = new._maxclientsperserver or _maxclientsperserver
-	_maxsslhandshake = new._maxsslhandshake or _maxsslhandshake
+	_selecttimeout = tonumber( new.select_timeout ) or _selecttimeout
+	_sleeptime = tonumber( new.select_sleep_time ) or _sleeptime
+	_maxsendlen = tonumber( new.max_send_buffer_size ) or _maxsendlen
+	_maxreadlen = tonumber( new.max_receive_buffer_size ) or _maxreadlen
+	_checkinterval = tonumber( new.select_idle_check_interval ) or _checkinterval
+	_sendtimeout = tonumber( new.send_timeout ) or _sendtimeout
+	_readtimeout = tonumber( new.read_timeout ) or _readtimeout
+	_cleanqueue = new.select_clean_queue
+	_maxclientsperserver = new.max_connections or _maxclientsperserver
+	_maxsslhandshake = new.max_ssl_handshake_roundtrips or _maxsslhandshake
 	return true
 end