service: sockets: Fix network crashes and lobby re-join issues #91

Merged
Collecting merged 2 commits from fix/multiplayer-service into main 2026-01-11 08:14:56 +00:00
Collaborator

This addresses multiple critical regressions in the BSD socket service and ProxySocket implementation:

  • Fixes a SIGSEGV in OnProxyPacketReceived by adding null checks for descriptors.

  • Fixes Communication Error when re-joining lobbies by properly resetting socket state, binding flags, and flushing stale packet queues in Initialize().

  • Fixes "Mii Override" and phantom player bugs by implementing loopback protection (ignoring self-sent packets) and target IP validation.

  • Adds duplicate packet suppression to ensure unique socket objects only process a packet once, even if multiple file descriptors point to them.

This ensures stable multiplayer connectivity and lobby synchronization in certain titles.

This addresses multiple critical regressions in the BSD socket service and ProxySocket implementation: - Fixes a SIGSEGV in OnProxyPacketReceived by adding null checks for descriptors. - Fixes Communication Error when re-joining lobbies by properly resetting socket state, binding flags, and flushing stale packet queues in Initialize(). - Fixes "Mii Override" and phantom player bugs by implementing loopback protection (ignoring self-sent packets) and target IP validation. - Adds duplicate packet suppression to ensure unique socket objects only process a packet once, even if multiple file descriptors point to them. This ensures stable multiplayer connectivity and lobby synchronization in certain titles.
Signed-off-by: Collecting <collecting@noreply.localhost>
Signed-off-by: Collecting <collecting@noreply.localhost>
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Citron/Emulator!91
No description provided.