Comparison

net/server_epoll.lua @ 10081:72adf1f39404

net.server_epoll: Add experimental option to close connections in case of listener error Sometimes such errors leave sessions in an inconsistent state, so it might be better to close them early.
author Kim Alvefur <zash@zash.se>
date Sat, 25 May 2019 16:14:31 +0200
parent 10080:39ca4202ae1e
child 10082:1df53ef1f60d
comparison
equal deleted inserted replaced
10080:39ca4202ae1e 10081:72adf1f39404
59 ssl_handshake_timeout = 60; 59 ssl_handshake_timeout = 60;
60 60
61 -- Maximum and minimum amount of time to sleep waiting for events (adjusted for pending timers) 61 -- Maximum and minimum amount of time to sleep waiting for events (adjusted for pending timers)
62 max_wait = 86400; 62 max_wait = 86400;
63 min_wait = 1e-06; 63 min_wait = 1e-06;
64
65 -- EXPERIMENTAL
66 -- Whether to kill connections in case of callback errors.
67 fatal_errors = false;
64 }}; 68 }};
65 local cfg = default_config.__index; 69 local cfg = default_config.__index;
66 70
67 local fds = createtable(10, 0); -- FD -> conn 71 local fds = createtable(10, 0); -- FD -> conn
68 72
160 return; 164 return;
161 end 165 end
162 local ok, err = pcall(listener, self, ...); 166 local ok, err = pcall(listener, self, ...);
163 if not ok then 167 if not ok then
164 log("error", "Error calling on%s: %s", what, err); 168 log("error", "Error calling on%s: %s", what, err);
169 if cfg.fatal_errors then
170 log("debug", "Closing %s due to error in listener", self);
171 self:destroy();
172 end
165 return nil, err; 173 return nil, err;
166 end 174 end
167 return err; 175 return err;
168 end 176 end
169 177