mirror of
https://github.com/overte-org/overte.git
synced 2025-08-11 04:18:35 +02:00
convert enum reason for disconnect to boolean
This commit is contained in:
parent
8a3672f3c5
commit
071a779930
2 changed files with 14 additions and 11 deletions
|
@ -337,12 +337,6 @@ public:
|
||||||
NodeType::EntityScriptServer
|
NodeType::EntityScriptServer
|
||||||
};
|
};
|
||||||
|
|
||||||
enum DomainConnectReason : quint32 {
|
|
||||||
START = 0,
|
|
||||||
RECONNECT
|
|
||||||
};
|
|
||||||
Q_ENUM(DomainConnectReason);
|
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void reset();
|
void reset();
|
||||||
void eraseAllNodes();
|
void eraseAllNodes();
|
||||||
|
@ -469,6 +463,7 @@ protected:
|
||||||
std::unordered_map<QUuid, ConnectionID> _connectionIDs;
|
std::unordered_map<QUuid, ConnectionID> _connectionIDs;
|
||||||
quint64 _nodeConnectTimestamp { 0 };
|
quint64 _nodeConnectTimestamp { 0 };
|
||||||
quint64 _nodeDisconnectTimestamp { 0 };
|
quint64 _nodeDisconnectTimestamp { 0 };
|
||||||
|
bool _wasSilentDomainDisconnect { false };
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void flagTimeForConnectionStep(ConnectionStep connectionStep, quint64 timestamp);
|
void flagTimeForConnectionStep(ConnectionStep connectionStep, quint64 timestamp);
|
||||||
|
|
|
@ -113,6 +113,9 @@ NodeList::NodeList(char newOwnerType, int socketListenPort, int dtlsListenPort)
|
||||||
connect(&_domainHandler, SIGNAL(connectedToDomain(QUrl)), &_keepAlivePingTimer, SLOT(start()));
|
connect(&_domainHandler, SIGNAL(connectedToDomain(QUrl)), &_keepAlivePingTimer, SLOT(start()));
|
||||||
connect(&_domainHandler, &DomainHandler::disconnectedFromDomain, &_keepAlivePingTimer, &QTimer::stop);
|
connect(&_domainHandler, &DomainHandler::disconnectedFromDomain, &_keepAlivePingTimer, &QTimer::stop);
|
||||||
|
|
||||||
|
connect(&_domainHandler, &DomainHandler::limitOfSilentDomainCheckInsReached,
|
||||||
|
this, [this]() {_wasSilentDomainDisconnect = true; });
|
||||||
|
|
||||||
// set our sockAddrBelongsToDomainOrNode method as the connection creation filter for the udt::Socket
|
// set our sockAddrBelongsToDomainOrNode method as the connection creation filter for the udt::Socket
|
||||||
using std::placeholders::_1;
|
using std::placeholders::_1;
|
||||||
_nodeSocket.setConnectionCreationFilterOperator(std::bind(&NodeList::sockAddrBelongsToDomainOrNode, this, _1));
|
_nodeSocket.setConnectionCreationFilterOperator(std::bind(&NodeList::sockAddrBelongsToDomainOrNode, this, _1));
|
||||||
|
@ -296,8 +299,6 @@ void NodeList::addSetOfNodeTypesToNodeInterestSet(const NodeSet& setOfNodeTypes)
|
||||||
|
|
||||||
void NodeList::sendDomainServerCheckIn() {
|
void NodeList::sendDomainServerCheckIn() {
|
||||||
|
|
||||||
int outstandingCheckins = _domainHandler.getCheckInPacketsSinceLastReply();
|
|
||||||
|
|
||||||
// On ThreadedAssignments (assignment clients), this function
|
// On ThreadedAssignments (assignment clients), this function
|
||||||
// is called by the server check-in timer thread
|
// is called by the server check-in timer thread
|
||||||
// not the NodeList thread. Calling it on the NodeList thread
|
// not the NodeList thread. Calling it on the NodeList thread
|
||||||
|
@ -417,7 +418,7 @@ void NodeList::sendDomainServerCheckIn() {
|
||||||
auto accountManager = DependencyManager::get<AccountManager>();
|
auto accountManager = DependencyManager::get<AccountManager>();
|
||||||
packetStream << FingerprintUtils::getMachineFingerprint();
|
packetStream << FingerprintUtils::getMachineFingerprint();
|
||||||
|
|
||||||
packetStream << ((outstandingCheckins >= MAX_SILENT_DOMAIN_SERVER_CHECK_INS) ? RECONNECT : START);
|
packetStream << quint32(_wasSilentDomainDisconnect ? 1 : 0);
|
||||||
|
|
||||||
if (_nodeDisconnectTimestamp < _nodeConnectTimestamp) {
|
if (_nodeDisconnectTimestamp < _nodeConnectTimestamp) {
|
||||||
_nodeDisconnectTimestamp = usecTimestampNow();
|
_nodeDisconnectTimestamp = usecTimestampNow();
|
||||||
|
@ -451,7 +452,7 @@ void NodeList::sendDomainServerCheckIn() {
|
||||||
// Send duplicate check-ins in the exponentially increasing sequence 1, 1, 2, 4, ...
|
// Send duplicate check-ins in the exponentially increasing sequence 1, 1, 2, 4, ...
|
||||||
static const int MAX_CHECKINS_TOGETHER = 20;
|
static const int MAX_CHECKINS_TOGETHER = 20;
|
||||||
static const int REBIND_CHECKIN_COUNT = 2;
|
static const int REBIND_CHECKIN_COUNT = 2;
|
||||||
|
int outstandingCheckins = _domainHandler.getCheckInPacketsSinceLastReply();
|
||||||
if (outstandingCheckins > REBIND_CHECKIN_COUNT) {
|
if (outstandingCheckins > REBIND_CHECKIN_COUNT) {
|
||||||
_nodeSocket.rebind();
|
_nodeSocket.rebind();
|
||||||
}
|
}
|
||||||
|
@ -637,7 +638,6 @@ void NodeList::processDomainServerConnectionTokenPacket(QSharedPointer<ReceivedM
|
||||||
_domainHandler.setConnectionToken(QUuid::fromRfc4122(message->readWithoutCopy(NUM_BYTES_RFC4122_UUID)));
|
_domainHandler.setConnectionToken(QUuid::fromRfc4122(message->readWithoutCopy(NUM_BYTES_RFC4122_UUID)));
|
||||||
|
|
||||||
_domainHandler.clearPendingCheckins();
|
_domainHandler.clearPendingCheckins();
|
||||||
_nodeConnectTimestamp = usecTimestampNow();
|
|
||||||
sendDomainServerCheckIn();
|
sendDomainServerCheckIn();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -678,6 +678,14 @@ void NodeList::processDomainServerList(QSharedPointer<ReceivedMessage> message)
|
||||||
quint64 domainServerCheckinProcessingTime;
|
quint64 domainServerCheckinProcessingTime;
|
||||||
packetStream >> domainServerCheckinProcessingTime;
|
packetStream >> domainServerCheckinProcessingTime;
|
||||||
|
|
||||||
|
bool newConnection;
|
||||||
|
packetStream >> newConnection;
|
||||||
|
|
||||||
|
if (newConnection) {
|
||||||
|
_nodeConnectTimestamp = usecTimestampNow();
|
||||||
|
_wasSilentDomainDisconnect = false;
|
||||||
|
}
|
||||||
|
|
||||||
qint64 pingLagTime = (now - qint64(connectRequestTimestamp)) / qint64(USECS_PER_MSEC);
|
qint64 pingLagTime = (now - qint64(connectRequestTimestamp)) / qint64(USECS_PER_MSEC);
|
||||||
|
|
||||||
qint64 domainServerRequestLag = (qint64(domainServerPingSendTime - domainServerCheckinProcessingTime) - qint64(connectRequestTimestamp)) / qint64(USECS_PER_MSEC);;
|
qint64 domainServerRequestLag = (qint64(domainServerPingSendTime - domainServerCheckinProcessingTime) - qint64(connectRequestTimestamp)) / qint64(USECS_PER_MSEC);;
|
||||||
|
|
Loading…
Reference in a new issue