mirror of
https://github.com/Armored-Dragon/overte.git
synced 2025-03-11 16:13:16 +01:00
high_resolution_clock behaves differently on windows and linux
on linux, time_since_epoch returns time since linux epoch, on windows, it returns time since system start. Math between those values on two different types of machines was coming out bad.
This commit is contained in:
parent
dedf1b64b8
commit
e12ed1c5d6
2 changed files with 8 additions and 9 deletions
|
@ -1174,8 +1174,8 @@ void DomainServer::sendDomainListToNode(const SharedNodePointer& node, quint64 r
|
|||
extendedHeaderStream << node->getPermissions();
|
||||
extendedHeaderStream << limitedNodeList->getAuthenticatePackets();
|
||||
extendedHeaderStream << nodeData->getLastDomainCheckinTimestamp();
|
||||
extendedHeaderStream << requestPacketReceiveTime;
|
||||
extendedHeaderStream << quint64(duration_cast<microseconds>(p_high_resolution_clock::now().time_since_epoch()).count());
|
||||
extendedHeaderStream << duration_cast<microseconds>(system_clock::now().time_since_epoch()).count();
|
||||
extendedHeaderStream << quint64(duration_cast<microseconds>(p_high_resolution_clock::now().time_since_epoch()).count()) - requestPacketReceiveTime;
|
||||
auto domainListPackets = NLPacketList::create(PacketType::DomainList, extendedHeader);
|
||||
|
||||
// always send the node their own UUID back
|
||||
|
|
|
@ -416,7 +416,7 @@ void NodeList::sendDomainServerCheckIn() {
|
|||
packetStream << FingerprintUtils::getMachineFingerprint();
|
||||
}
|
||||
|
||||
packetStream << quint64(duration_cast<microseconds>(p_high_resolution_clock::now().time_since_epoch()).count());
|
||||
packetStream << quint64(duration_cast<microseconds>(system_clock::now().time_since_epoch()).count());
|
||||
|
||||
// pack our data to send to the domain-server including
|
||||
// the hostname information (so the domain-server can see which place name we came in on)
|
||||
|
@ -649,21 +649,20 @@ void NodeList::processDomainServerList(QSharedPointer<ReceivedMessage> message)
|
|||
bool isAuthenticated;
|
||||
packetStream >> isAuthenticated;
|
||||
|
||||
qint64 now = qint64(duration_cast<microseconds>(p_high_resolution_clock::now().time_since_epoch()).count());
|
||||
qint64 now = qint64(duration_cast<microseconds>(system_clock::now().time_since_epoch()).count());
|
||||
|
||||
quint64 connectRequestTimestamp;
|
||||
packetStream >> connectRequestTimestamp;
|
||||
|
||||
quint64 domainServerRequestReceiveTime;
|
||||
packetStream >> domainServerRequestReceiveTime;
|
||||
|
||||
quint64 domainServerPingSendTime;
|
||||
packetStream >> domainServerPingSendTime;
|
||||
|
||||
quint64 domainServerCheckinProcessingTime;
|
||||
packetStream >> domainServerCheckinProcessingTime;
|
||||
|
||||
qint64 pingLagTime = (now - qint64(connectRequestTimestamp)) / qint64(USECS_PER_MSEC);
|
||||
|
||||
qint64 domainServerRequestLag = (qint64(domainServerRequestReceiveTime) - qint64(connectRequestTimestamp)) / qint64(USECS_PER_MSEC);
|
||||
quint64 domainServerCheckinProcessingTime = domainServerPingSendTime - domainServerRequestReceiveTime;
|
||||
qint64 domainServerRequestLag = (qint64(domainServerPingSendTime - domainServerCheckinProcessingTime) - qint64(connectRequestTimestamp)) / qint64(USECS_PER_MSEC);;
|
||||
qint64 domainServerResponseLag = (now - qint64(domainServerPingSendTime)) / qint64(USECS_PER_MSEC);
|
||||
|
||||
if (_domainHandler.getSockAddr().isNull()) {
|
||||
|
|
Loading…
Reference in a new issue