net.server, _select: Reorganise configuration of server_select to be more like server...
authorKim Alvefur <zash@zash.se>
Sat, 23 Mar 2013 19:06:02 +0000 (20:06 +0100)
committerKim Alvefur <zash@zash.se>
Sat, 23 Mar 2013 19:06:02 +0000 (20:06 +0100)
net/server.lua
net/server_select.lua

index deabaa126b4a50f772c662de998f3d685814aa11..ae3d45b0090c5b98e3355213e2c1e32ec81034f4 100644 (file)
@@ -42,6 +42,10 @@ end
 
 if prosody then
        local config_get = require "core.configmanager".get;
+       local defaults = {};
+       for k,v in pairs(server.cfg or server.getsettings()) do
+               defaults[k] = v;
+       end
        local function load_config()
                local settings = config_get("*", "network_settings") or {};
                if use_luaevent then
@@ -59,11 +63,15 @@ if prosody then
                                WRITE_TIMEOUT = settings.send_timeout;
                        };
 
-                       for k, v in pairs(event_settings) do
-                               server.cfg[k] = v;
+                       for k,default in pairs(defaults) do
+                               server.cfg[k] = event_settings[k] or default;
                        end
                else
-                       server.changesettings(settings);
+                       local select_settings = {};
+                       for k,default in pairs(defaults) do
+                               select_settings[k] = settings[k] or default;
+                       end
+                       server.changesettings(select_settings);
                end
        end
        load_config();
index 63a94b7eb8ea8230c29943f8bba891ab1c8c1793..8ce9eed29685e328650434e040342ecbe2018def 100644 (file)
@@ -769,7 +769,18 @@ closeall = function( )
 end
 
 getsettings = function( )
-       return  _selecttimeout, _sleeptime, _maxsendlen, _maxreadlen, _checkinterval, _sendtimeout, _readtimeout, nil, _maxselectlen, _maxsslhandshake, _maxfd
+       return {
+               select_timeout = _selecttimeout;
+               select_sleep_time = _sleeptime;
+               max_send_buffer_size = _maxsendlen;
+               max_receive_buffer_size = _maxreadlen;
+               select_idle_check_interval = _checkinterval;
+               send_timeout = _sendtimeout;
+               read_timeout = _readtimeout;
+               max_connections = _maxselectlen;
+               max_ssl_handshake_roundtrips = _maxsslhandshake;
+               highest_allowed_fd = _maxfd;
+       }
 end
 
 changesettings = function( new )