mirror of
https://github.com/JulianGro/overte.git
synced 2025-04-29 19:42:53 +02:00
Move DomainList timestamps to the extended header
And. Lag notifications now use signed values
This commit is contained in:
parent
9c39d06416
commit
1c6cf3df0d
2 changed files with 7 additions and 11 deletions
|
@ -1160,7 +1160,7 @@ void DomainServer::sendDomainListToNode(const SharedNodePointer& node, const Hif
|
||||||
// this data is at the beginning of each of the domain list packets
|
// this data is at the beginning of each of the domain list packets
|
||||||
QByteArray extendedHeader(NUM_DOMAIN_LIST_EXTENDED_HEADER_BYTES, 0);
|
QByteArray extendedHeader(NUM_DOMAIN_LIST_EXTENDED_HEADER_BYTES, 0);
|
||||||
QDataStream extendedHeaderStream(&extendedHeader, QIODevice::WriteOnly);
|
QDataStream extendedHeaderStream(&extendedHeader, QIODevice::WriteOnly);
|
||||||
|
DomainServerNodeData* nodeData = static_cast<DomainServerNodeData*>(node->getLinkedData());
|
||||||
auto limitedNodeList = DependencyManager::get<LimitedNodeList>();
|
auto limitedNodeList = DependencyManager::get<LimitedNodeList>();
|
||||||
|
|
||||||
extendedHeaderStream << limitedNodeList->getSessionUUID();
|
extendedHeaderStream << limitedNodeList->getSessionUUID();
|
||||||
|
@ -1169,17 +1169,13 @@ void DomainServer::sendDomainListToNode(const SharedNodePointer& node, const Hif
|
||||||
extendedHeaderStream << node->getLocalID();
|
extendedHeaderStream << node->getLocalID();
|
||||||
extendedHeaderStream << node->getPermissions();
|
extendedHeaderStream << node->getPermissions();
|
||||||
extendedHeaderStream << limitedNodeList->getAuthenticatePackets();
|
extendedHeaderStream << limitedNodeList->getAuthenticatePackets();
|
||||||
|
extendedHeaderStream << nodeData->getLastDomainCheckinTimestamp();
|
||||||
|
extendedHeaderStream << usecTimestampNow();
|
||||||
auto domainListPackets = NLPacketList::create(PacketType::DomainList, extendedHeader);
|
auto domainListPackets = NLPacketList::create(PacketType::DomainList, extendedHeader);
|
||||||
|
|
||||||
// always send the node their own UUID back
|
// always send the node their own UUID back
|
||||||
QDataStream domainListStream(domainListPackets.get());
|
QDataStream domainListStream(domainListPackets.get());
|
||||||
|
|
||||||
DomainServerNodeData* nodeData = static_cast<DomainServerNodeData*>(node->getLinkedData());
|
|
||||||
|
|
||||||
domainListStream << nodeData->getLastDomainCheckinTimestamp();
|
|
||||||
|
|
||||||
domainListStream << usecTimestampNow();
|
|
||||||
|
|
||||||
// store the nodeInterestSet on this DomainServerNodeData, in case it has changed
|
// store the nodeInterestSet on this DomainServerNodeData, in case it has changed
|
||||||
auto& nodeInterestSet = nodeData->getNodeInterestSet();
|
auto& nodeInterestSet = nodeData->getNodeInterestSet();
|
||||||
|
|
||||||
|
|
|
@ -646,14 +646,14 @@ void NodeList::processDomainServerList(QSharedPointer<ReceivedMessage> message)
|
||||||
packetStream >> isAuthenticated;
|
packetStream >> isAuthenticated;
|
||||||
|
|
||||||
quint64 connectRequestTimestamp;
|
quint64 connectRequestTimestamp;
|
||||||
quint64 now = usecTimestampNow();
|
qint64 now = (qint64)usecTimestampNow();
|
||||||
packetStream >> connectRequestTimestamp;
|
packetStream >> connectRequestTimestamp;
|
||||||
quint64 pingLagTime = (now - connectRequestTimestamp) / USECS_PER_MSEC;
|
qint64 pingLagTime = (now - (qint64)connectRequestTimestamp) / (qint64)USECS_PER_MSEC;
|
||||||
quint64 domainServerPingReceiveTime;
|
quint64 domainServerPingReceiveTime;
|
||||||
|
|
||||||
packetStream >> domainServerPingReceiveTime;
|
packetStream >> domainServerPingReceiveTime;
|
||||||
quint64 domainServerRequestLag = (domainServerPingReceiveTime - connectRequestTimestamp) / USECS_PER_MSEC;
|
qint64 domainServerRequestLag = ((qint64)domainServerPingReceiveTime - (qint64)connectRequestTimestamp) / (qint64)USECS_PER_MSEC;
|
||||||
quint64 domainServerResponseLag = (now - domainServerPingReceiveTime) / USECS_PER_MSEC;
|
qint64 domainServerResponseLag = (now - (qint64)domainServerPingReceiveTime) / (qint64)USECS_PER_MSEC;
|
||||||
|
|
||||||
if (_domainHandler.getSockAddr().isNull()) {
|
if (_domainHandler.getSockAddr().isNull()) {
|
||||||
qWarning(networking) << "IGNORING DomainList packet while not connected to a Domain Server: sent " << pingLagTime << " msec ago.";
|
qWarning(networking) << "IGNORING DomainList packet while not connected to a Domain Server: sent " << pingLagTime << " msec ago.";
|
||||||
|
|
Loading…
Reference in a new issue