Software /
code /
prosody
Changeset
7563:71dc0d89a9b8
net.server_epoll: Wrap calling of ondisconnect listener in additional indirection
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sun, 14 Aug 2016 01:09:55 +0200 |
parents | 7562:bc40f6d626a0 |
children | 7564:f95ffd24e042 |
files | net/server_epoll.lua |
diffstat | 1 files changed, 12 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/net/server_epoll.lua Fri Aug 12 01:38:47 2016 +0200 +++ b/net/server_epoll.lua Sun Aug 14 01:09:55 2016 +0200 @@ -155,7 +155,7 @@ if self:onreadtimeout() then return cfg.read_timeout; else - self.listeners.ondisconnect(self, "read timeout"); + self:ondisconnect("read timeout"); self:destroy(); end end); @@ -330,7 +330,7 @@ self:setflags(false, false); local conn, err = luasec.wrap(self.conn, ctx or self.tls); if not conn then - self.listeners.ondisconnect(self, err); + self:ondisconnect(err); self:destroy(); end conn:settimeout(0); @@ -365,7 +365,7 @@ self:setreadtimeout(false); self:setwritetimeout(cfg.handshake_timeout); else - self.listeners.ondisconnect(self, err); + self:ondisconnect(err); self:destroy(); end end @@ -430,9 +430,17 @@ end); end +function interface:ondisconnect(err) + if self.listeners.ondisconnect then + self.listeners.ondisconnect(self, err); + end +end + function interface:onconnect() self.onwriteable = nil; - self.listeners.onconnect(self); + if self.listeners.onconnect then + self.listeners.onconnect(self); + end self:setflags(true); return self:onwriteable(); end