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
parent 6484:913585bca01f
child 7099: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()