Open
Description
Tested versions
Reproducible in Godot v4.4.stable
System information
Godot v4.4.stable - Fedora Linux 42 (Workstation Edition) on Wayland - X11 display driver, Multi-window, 1 monitor - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 3060 Laptop GPU (NVK GA106) - 11th Gen Intel(R) Core(TM) i5-11400H @ 2.70GHz (12 threads)
Issue description
When using ENetConnection for networking, if a client isn't disconnected cleanly (for example when the process hosting it suddenly dies) a server will have the disconnect event raised but the related ENetPacketPeer will NOT have the remote address and port).
This makes it impossible to tell which client timed out when there are multiple players. I believe this is different from the behavior of ENet itself.
Steps to reproduce
- Run the attached project twice either from console or from the godot editor.
- In the first instance, click on "server" and wait for a line of text about creating the server to print .
- In the second instance, click on "client" and wait for a line of text about creating the client to print .
- Kill the second instance (client) either by killing the process or pressing the close button in the corner of the window frame
- Wait for the first instance (server) to have a disconnect event for the client raised due to a timeout
- The server will attempt to get the remote address and port for the disconnected peer, this will result in an error
Minimal reproduction project (MRP)
Metadata
Metadata
Assignees
Type
Projects
Status
For team assessment