From a629555e6bb227c2616fdc3312ffbcb80715af99 Mon Sep 17 00:00:00 2001 From: Ziek Date: Sat, 14 Feb 2015 19:51:08 -0800 Subject: Added Gui elements in Netplay Setup Diag so a person can choose a traversal server Fixed bug with UPnP so that it will grab the proper address and protocal Fixed bug that caused dolphin to freeze when host codes were to large --- Source/Core/Common/TraversalClient.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'Source/Core/Common/TraversalClient.cpp') diff --git a/Source/Core/Common/TraversalClient.cpp b/Source/Core/Common/TraversalClient.cpp index 736263090d..e9e6c5939b 100644 --- a/Source/Core/Common/TraversalClient.cpp +++ b/Source/Core/Common/TraversalClient.cpp @@ -12,13 +12,14 @@ static void GetRandomishBytes(u8* buf, size_t size) buf[i] = rand() & 0xff; } -TraversalClient::TraversalClient(ENetHost* netHost, const std::string& server) +TraversalClient::TraversalClient(ENetHost* netHost, const std::string& server, const u16 port) : m_NetHost(netHost) , m_Client(nullptr) , m_FailureReason(0) , m_ConnectRequestId(0) , m_PendingConnect(false) , m_Server(server) + , m_port(port) , m_PingTime(0) { netHost->intercept = TraversalClient::InterceptCallback; @@ -34,13 +35,12 @@ TraversalClient::~TraversalClient() void TraversalClient::ReconnectToServer() { - m_Server = "vps.qoid.us"; // XXX if (enet_address_set_host(&m_ServerAddress, m_Server.c_str())) { OnFailure(BadHost); return; } - m_ServerAddress.port = 6262; + m_ServerAddress.port = m_port; m_State = Connecting; @@ -326,12 +326,13 @@ static u16 g_OldPort; bool EnsureTraversalClient(const std::string& server, u16 port) { + if (!g_MainNetHost || !g_TraversalClient || server != g_OldServer || port != g_OldPort) { g_OldServer = server; - g_OldPort = port; + g_OldPort = port ; - ENetAddress addr = { ENET_HOST_ANY, port }; + ENetAddress addr = { ENET_HOST_ANY, 0 }; ENetHost* host = enet_host_create( &addr, // address 50, // peerCount @@ -344,7 +345,7 @@ bool EnsureTraversalClient(const std::string& server, u16 port) return false; } g_MainNetHost.reset(host); - g_TraversalClient.reset(new TraversalClient(g_MainNetHost.get(), server)); + g_TraversalClient.reset(new TraversalClient(g_MainNetHost.get(), server, port)); } return true; } -- cgit v1.2.3