1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-02-06 17:45:33 +00:00

[Browser] Fix freeze when server is unreachable

This commit is contained in:
Koncord 2017-05-26 03:02:07 +08:00
parent 24d4e1c222
commit f8c6ed8028

View file

@ -25,8 +25,13 @@ unsigned int PingRakNetServer(const char *addr, unsigned short port)
peer->Startup(1, &socketDescriptor, 1); peer->Startup(1, &socketDescriptor, 1);
if (!peer->Ping(addr, port, false)) if (!peer->Ping(addr, port, false))
return time; return time;
RakNet::TimeMS start = RakNet::GetTimeMS();
while (!done) while (!done)
{ {
RakNet::TimeMS now = RakNet::GetTimeMS();
if(now - start >= PING_UNREACHABLE)
break;
packet = peer->Receive(); packet = peer->Receive();
if (!packet) if (!packet)
continue; continue;
@ -41,7 +46,7 @@ unsigned int PingRakNetServer(const char *addr, unsigned short port)
case ID_UNCONNECTED_PONG: case ID_UNCONNECTED_PONG:
RakNet::BitStream bsIn(&packet->data[1], packet->length, false); RakNet::BitStream bsIn(&packet->data[1], packet->length, false);
bsIn.Read(time); bsIn.Read(time);
time = RakNet::GetTimeMS() - time; time = now - time;
done = true; done = true;
break; break;
} }