From 6fc7e604e7da8126d3f1fc0e06d81e67a6f9afb1 Mon Sep 17 00:00:00 2001 From: IntegratedQuantum Date: Sat, 26 Apr 2025 15:12:24 +0200 Subject: [PATCH] Add a delay before after sending the disconnect signal on windows localhost. fixes #1322 --- src/network.zig | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/network.zig b/src/network.zig index 9cb575c3..a7255ed1 100644 --- a/src/network.zig +++ b/src/network.zig @@ -2079,6 +2079,9 @@ pub const Connection = struct { // MARK: Connection pub fn disconnect(self: *Connection) void { self.manager.send(&.{@intFromEnum(ChannelId.disconnect)}, self.remoteAddress, null); self.connectionState.store(.disconnectDesired, .unordered); + if(builtin.os.tag == .windows and !self.isServerSide() and main.server.world != null) { + std.time.sleep(10000000); // Windows is too eager to close the socket, without waiting here we get a ConnectionResetByPeer on the other side. + } self.manager.removeConnection(self); if(self.user) |user| { main.server.disconnect(user);