aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/server.lua32
-rw-r--r--net/server_select.lua20
-rw-r--r--plugins/mod_admin_adhoc.lua9
-rw-r--r--plugins/mod_http.lua4
4 files changed, 44 insertions, 21 deletions
diff --git a/net/server.lua b/net/server.lua
index 3fad4b45..d80b8a18 100644
--- a/net/server.lua
+++ b/net/server.lua
@@ -36,9 +36,41 @@ if use_luaevent then
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") or {};
+ 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;
diff --git a/net/server_select.lua b/net/server_select.lua
index 9104dace..8cb4e235 100644
--- a/net/server_select.lua
+++ b/net/server_select.lua
@@ -749,16 +749,16 @@ changesettings = function( new )
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
diff --git a/plugins/mod_admin_adhoc.lua b/plugins/mod_admin_adhoc.lua
index aa1af3ff..9f3175d0 100644
--- a/plugins/mod_admin_adhoc.lua
+++ b/plugins/mod_admin_adhoc.lua
@@ -212,15 +212,6 @@ function end_user_session_handler(self, data, state)
end
end
-local end_user_session_layout = dataforms_new{
- title = "Ending a User Session";
- instructions = "Fill out this form to end a user's session.";
-
- { name = "FORM_TYPE", type = "hidden", value = "http://jabber.org/protocol/admin" };
- { name = "accountjids", type = "jid-multi", label = "The Jabber ID(s) for which to end sessions" };
-};
-
-
function get_user_password_handler(self, data, state)
local get_user_password_layout = dataforms_new{
title = "Getting User's Password";
diff --git a/plugins/mod_http.lua b/plugins/mod_http.lua
index f386f870..e73778ae 100644
--- a/plugins/mod_http.lua
+++ b/plugins/mod_http.lua
@@ -88,10 +88,10 @@ function module.add_host(module)
local data = handler;
handler = function () return data; end
elseif event_name:sub(-2, -1) == "/*" then
- local base_path = event_name:match("/(.+)/*$");
+ local base_path_len = #event_name:match("(/.+/)%*$")+1;
local _handler = handler;
handler = function (event)
- local path = event.request.path:sub(#base_path+1);
+ local path = event.request.path:sub(base_path_len);
return _handler(event, path);
end;
end