# HG changeset patch # User Kim Alvefur # Date 1471531282 -7200 # Node ID 0266434d7df113b73cc2b5e8568453747a1991aa # Parent 10d2f008321d62e64562b9d2fd3a4d8686e1f675 net.server_epoll: Prevent further writing after closing a socket diff -r 10d2f008321d -r 0266434d7df1 net/server_epoll.lua --- a/net/server_epoll.lua Thu Aug 18 16:33:12 2016 +0200 +++ b/net/server_epoll.lua Thu Aug 18 16:41:22 2016 +0200 @@ -334,10 +334,13 @@ function interface:close() if self._wantwrite then + self:setflags(false, true); -- Flush final buffer contents + self.write, self.send = noop, noop; -- No more writing log("debug", "Close %s after writing", tostring(self)); self._toclose = true; else log("debug", "Close %s now", tostring(self)); + self.write, self.send = noop, noop; self.close = noop; self:on("disconnect"); self:destroy();