Mercurial > prosody-hg
comparison net/server.lua @ 6482:410067cdeb2f
net/server: If server.hook_signal exists, overwrite signal.signal; else make server.hook_signal == signal.signal
No longer server_event specific
server.hook_signal will always exist
| author | daurnimator <quae@daurnimator.com> |
|---|---|
| date | Tue, 21 Oct 2014 17:26:48 -0400 |
| parents | 37b12475f648 |
| children | 63539dfb96e7 |
comparison
equal
deleted
inserted
replaced
| 6481:dbc72cd1332e | 6482:410067cdeb2f |
|---|---|
| 21 | 21 |
| 22 local server; | 22 local server; |
| 23 local set_config; | 23 local set_config; |
| 24 if server_type == "event" then | 24 if server_type == "event" then |
| 25 server = require "net.server_event"; | 25 server = require "net.server_event"; |
| 26 | |
| 27 -- Overwrite signal.signal() because we need to ask libevent to | |
| 28 -- handle them instead | |
| 29 local ok, signal = pcall(require, "util.signal"); | |
| 30 if ok and signal then | |
| 31 local _signal_signal = signal.signal; | |
| 32 function signal.signal(signal_id, handler) | |
| 33 if type(signal_id) == "string" then | |
| 34 signal_id = signal[signal_id:upper()]; | |
| 35 end | |
| 36 if type(signal_id) ~= "number" then | |
| 37 return false, "invalid-signal"; | |
| 38 end | |
| 39 return server.hook_signal(signal_id, handler); | |
| 40 end | |
| 41 end | |
| 42 | 26 |
| 43 local defaults = {}; | 27 local defaults = {}; |
| 44 for k,v in pairs(server.cfg) do | 28 for k,v in pairs(server.cfg) do |
| 45 defaults[k] = v; | 29 defaults[k] = v; |
| 46 end | 30 end |
| 80 end | 64 end |
| 81 else | 65 else |
| 82 error("Unsupported server type") | 66 error("Unsupported server type") |
| 83 end | 67 end |
| 84 | 68 |
| 69 -- If server.hook_signal exists, replace signal.signal() | |
| 70 local ok, signal = pcall(require, "util.signal"); | |
| 71 if server.hook_signal then | |
| 72 if ok then | |
| 73 function signal.signal(signal_id, handler) | |
| 74 if type(signal_id) == "string" then | |
| 75 signal_id = signal[signal_id:upper()]; | |
| 76 end | |
| 77 if type(signal_id) ~= "number" then | |
| 78 return false, "invalid-signal"; | |
| 79 end | |
| 80 return server.hook_signal(signal_id, handler); | |
| 81 end | |
| 82 end | |
| 83 else | |
| 84 server.hook_signal = signal.signal; | |
| 85 end | |
| 86 | |
| 85 if prosody then | 87 if prosody then |
| 86 local config_get = require "core.configmanager".get; | 88 local config_get = require "core.configmanager".get; |
| 87 local function load_config() | 89 local function load_config() |
| 88 local settings = config_get("*", "network_settings") or {}; | 90 local settings = config_get("*", "network_settings") or {}; |
| 89 return set_config(settings); | 91 return set_config(settings); |
