# HG changeset patch
# User Kim Alvefur <zash@zash.se>
# Date 1731973262 -3600
# Node ID ca041359c0457107c44eb334b49ff7fa15ff404a
# Parent  9b9b224aa3f8bf471da675a198a861d8d063d34b
net.server_epoll: Don't try to flush buffer on closed connections

Attempt to fix a bug where connections are somehow closed twice, leading
to bad things happening elsewhere.

With LuaSec, closed connections are generally already too closed to
write anything to anyway since it does not support unidirectional
shutdown.

diff -r 9b9b224aa3f8 -r ca041359c045 net/server_epoll.lua
--- a/net/server_epoll.lua	Tue Nov 19 00:31:21 2024 +0100
+++ b/net/server_epoll.lua	Tue Nov 19 00:41:02 2024 +0100
@@ -508,7 +508,8 @@
 		end
 		if err == "closed" and self._connected then
 			self:debug("Connection closed by remote");
-			self:close(err);
+			self:on("disconnect", err);
+			self:destroy();
 			return;
 		elseif err ~= "timeout" then
 			self:debug("Read error, closing (%s)", err);