Software /
code /
prosody
Changeset
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 |
parents | 10080:39ca4202ae1e |
children | 10082:1df53ef1f60d |
files | net/server_epoll.lua |
diffstat | 1 files changed, 8 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/net/server_epoll.lua Sat May 25 16:09:26 2019 +0200 +++ b/net/server_epoll.lua Sat May 25 16:14:31 2019 +0200 @@ -61,6 +61,10 @@ -- Maximum and minimum amount of time to sleep waiting for events (adjusted for pending timers) max_wait = 86400; min_wait = 1e-06; + + -- EXPERIMENTAL + -- Whether to kill connections in case of callback errors. + fatal_errors = false; }}; local cfg = default_config.__index; @@ -162,6 +166,10 @@ local ok, err = pcall(listener, self, ...); if not ok then log("error", "Error calling on%s: %s", what, err); + if cfg.fatal_errors then + log("debug", "Closing %s due to error in listener", self); + self:destroy(); + end return nil, err; end return err;