Mercurial > prosody-hg
comparison net/server.lua @ 6485:4224abbf0fdd
net/server: Handle lack of util.signal correctly
| author | daurnimator <quae@daurnimator.com> |
|---|---|
| date | Wed, 22 Oct 2014 16:00:40 -0400 |
| parents | 913585bca01f |
| children | 8e64e7b82928 |
comparison
equal
deleted
inserted
replaced
| 6484:913585bca01f | 6485:4224abbf0fdd |
|---|---|
| 64 else | 64 else |
| 65 error("Unsupported server type") | 65 error("Unsupported server type") |
| 66 end | 66 end |
| 67 | 67 |
| 68 -- If server.hook_signal exists, replace signal.signal() | 68 -- If server.hook_signal exists, replace signal.signal() |
| 69 local ok, signal = pcall(require, "util.signal"); | 69 local has_signal, signal = pcall(require, "util.signal"); |
| 70 if server.hook_signal then | 70 if has_signal then |
| 71 if ok then | 71 if server.hook_signal then |
| 72 function signal.signal(signal_id, handler) | 72 function signal.signal(signal_id, handler) |
| 73 if type(signal_id) == "string" then | 73 if type(signal_id) == "string" then |
| 74 signal_id = signal[signal_id:upper()]; | 74 signal_id = signal[signal_id:upper()]; |
| 75 end | 75 end |
| 76 if type(signal_id) ~= "number" then | 76 if type(signal_id) ~= "number" then |
| 77 return false, "invalid-signal"; | 77 return false, "invalid-signal"; |
| 78 end | 78 end |
| 79 return server.hook_signal(signal_id, handler); | 79 return server.hook_signal(signal_id, handler); |
| 80 end | 80 end |
| 81 else | |
| 82 server.hook_signal = signal.signal; | |
| 81 end | 83 end |
| 82 else | 84 else |
| 83 server.hook_signal = signal.signal; | 85 if not server.hook_signal then |
| 86 server.hook_signal = function() | |
| 87 return false, "signal hooking not supported" | |
| 88 end | |
| 89 end | |
| 84 end | 90 end |
| 85 | 91 |
| 86 if prosody then | 92 if prosody then |
| 87 local config_get = require "core.configmanager".get; | 93 local config_get = require "core.configmanager".get; |
| 88 local function load_config() | 94 local function load_config() |
