summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorPierre Bourdon <delroth@gmail.com>2023-01-17 23:40:24 +0100
committerGitHub <noreply@github.com>2023-01-17 23:40:24 +0100
commit1cd11b8f3abe54672f4f92349688ad1998cecdcd (patch)
tree11bfde9e5b75a350a8864dfa6caa0bb1970fdbd9 /Source/Core
parent4fc6488844c45af3f38daab63f584ef1b6207b7b (diff)
parentc689e9cde0364a524e5e73fa1f966e6d0ff11cb8 (diff)
Merge pull request #11381 from skyfloogle/traversal-fix-1
Netplay: Fix traversal connections occasionally not working
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Core/NetPlayClient.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/Source/Core/Core/NetPlayClient.cpp b/Source/Core/Core/NetPlayClient.cpp
index 3208caee36..265dcd2402 100644
--- a/Source/Core/Core/NetPlayClient.cpp
+++ b/Source/Core/Core/NetPlayClient.cpp
@@ -248,7 +248,12 @@ bool NetPlayClient::Connect()
sf::Packet rpac;
// TODO: make this not hang
ENetEvent netEvent;
- if (enet_host_service(m_client, &netEvent, 5000) > 0 && netEvent.type == ENET_EVENT_TYPE_RECEIVE)
+ int net;
+ while ((net = enet_host_service(m_client, &netEvent, 5000)) > 0 && netEvent.type == 42)
+ {
+ // ignore packets from traversal server
+ }
+ if (net > 0 && netEvent.type == ENET_EVENT_TYPE_RECEIVE)
{
rpac.append(netEvent.packet->data, netEvent.packet->dataLength);
enet_packet_destroy(netEvent.packet);