summaryrefslogtreecommitdiff
path: root/Source/Core/Common/TraversalClient.cpp
diff options
context:
space:
mode:
authorZiek <TheMostSupremeZiek@gmail.com>2015-02-14 19:51:08 -0800
committerZiek <TheMostSupremeZiek@gmail.com>2015-02-25 18:28:26 -0800
commita629555e6bb227c2616fdc3312ffbcb80715af99 (patch)
treeafe754b53813ac39ac70d9f8047b7df5972ef191 /Source/Core/Common/TraversalClient.cpp
parent1dea3780a7269cd7ec298578a335b065676b4ac9 (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.cpp13
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;
}