From e5a2a13175378f2ed8c900432712d4d838dfe8bf Mon Sep 17 00:00:00 2001 From: cirakg Date: Mon, 2 Nov 2026 21:14:42 +0100 Subject: network: deliver room datagrams through ProxySocket::Recv When connected to an emulator room every guest socket is a ProxySocket. Its Recv was a stub that always returned zero bytes, so games that read UDP replies with recv() never received them. Mario Kart World LAN Play reads its discovery replies this way, so guests never saw the host's room in the LAN browser. Delegate Recv to RecvFrom without an address, so queued room packets, non-blocking, timeout, peek and truncation behaviour match recvfrom(). Assisted-by: Claude Opus 5.5 (investigation and implementation) --- src/core/internal_network/socket_proxy.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) (limited to 'src/core/internal_network/socket_proxy.cpp') diff --git a/src/core/internal_network/socket_proxy.cpp b/src/core/internal_network/socket_proxy.cpp index 744765bfcc..d3ae33d065 100644 --- a/src/core/internal_network/socket_proxy.cpp +++ b/src/core/internal_network/socket_proxy.cpp @@ -102,11 +102,7 @@ Errno ProxySocket::Shutdown(ShutdownHow how) { } std::pair ProxySocket::Recv(int flags, std::span message) { - LOG_WARNING(Network, "(STUBBED) called"); - ASSERT(flags == 0); - ASSERT(message.size() < static_cast((std::numeric_limits::max)())); - - return {static_cast(0), Errno::SUCCESS}; + return RecvFrom(flags, message, nullptr); } std::pair ProxySocket::RecvFrom(int flags, std::span message, SockAddrIn* addr) { -- cgit v1.2.3