diff options
| author | Ziek <TheMostSupremeZiek@gmail.com> | 2015-02-14 19:51:08 -0800 |
|---|---|---|
| committer | Ziek <TheMostSupremeZiek@gmail.com> | 2015-02-25 18:28:26 -0800 |
| commit | a629555e6bb227c2616fdc3312ffbcb80715af99 (patch) | |
| tree | afe754b53813ac39ac70d9f8047b7df5972ef191 /Source/Core/Common/TraversalClient.cpp | |
| parent | 1dea3780a7269cd7ec298578a335b065676b4ac9 (diff) | |
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
Diffstat (limited to 'Source/Core/Common/TraversalClient.cpp')
| -rw-r--r-- | Source/Core/Common/TraversalClient.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
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; } |
