Comparison

net/server.lua @ 5394:3d1de30fefec

Merge 0.9->trunk
author Matthew Wild <mwild1@gmail.com>
date Thu, 28 Mar 2013 12:17:15 +0000
parent 5385:d663483036db
child 5531:483f795f6f99
comparison
equal deleted inserted replaced
5382:214c32e10734 5394:3d1de30fefec
4 -- 4 --
5 -- This project is MIT/X11 licensed. Please see the 5 -- This project is MIT/X11 licensed. Please see the
6 -- COPYING file in the source package for more information. 6 -- COPYING file in the source package for more information.
7 -- 7 --
8 8
9 local use_luaevent = prosody and require "core.configmanager".get("*", "core", "use_libevent"); 9 local use_luaevent = prosody and require "core.configmanager".get("*", "use_libevent");
10 10
11 if use_luaevent then 11 if use_luaevent then
12 use_luaevent = pcall(require, "luaevent.core"); 12 use_luaevent = pcall(require, "luaevent.core");
13 if not use_luaevent then 13 if not use_luaevent then
14 log("error", "libevent not found, falling back to select()"); 14 log("error", "libevent not found, falling back to select()");
40 server = require "net.server_select"; 40 server = require "net.server_select";
41 end 41 end
42 42
43 if prosody then 43 if prosody then
44 local config_get = require "core.configmanager".get; 44 local config_get = require "core.configmanager".get;
45 local defaults = {};
46 for k,v in pairs(server.cfg or server.getsettings()) do
47 defaults[k] = v;
48 end
45 local function load_config() 49 local function load_config()
46 local settings = config_get("*", "core", "network_settings") or {}; 50 local settings = config_get("*", "network_settings") or {};
47 if use_luaevent then 51 if use_luaevent then
48 local event_settings = { 52 local event_settings = {
49 ACCEPT_DELAY = settings.event_accept_retry_interval; 53 ACCEPT_DELAY = settings.event_accept_retry_interval;
50 CLEAR_DELAY = settings.event_clear_interval; 54 CLEAR_DELAY = settings.event_clear_interval;
51 CONNECT_TIMEOUT = settings.connect_timeout; 55 CONNECT_TIMEOUT = settings.connect_timeout;
57 MAX_SEND_LENGTH = settings.max_send_buffer_size; 61 MAX_SEND_LENGTH = settings.max_send_buffer_size;
58 READ_TIMEOUT = settings.read_timeout; 62 READ_TIMEOUT = settings.read_timeout;
59 WRITE_TIMEOUT = settings.send_timeout; 63 WRITE_TIMEOUT = settings.send_timeout;
60 }; 64 };
61 65
62 for k, v in pairs(event_settings) do 66 for k,default in pairs(defaults) do
63 server.cfg[k] = v; 67 server.cfg[k] = event_settings[k] or default;
64 end 68 end
65 else 69 else
66 server.changesettings(settings); 70 local select_settings = {};
71 for k,default in pairs(defaults) do
72 select_settings[k] = settings[k] or default;
73 end
74 server.changesettings(select_settings);
67 end 75 end
68 end 76 end
69 load_config(); 77 load_config();
70 prosody.events.add_handler("config-reloaded", load_config); 78 prosody.events.add_handler("config-reloaded", load_config);
71 end 79 end