mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 23:57:13 +02:00
associate assignment wallet UUID with node via DomainServerNodeData
This commit is contained in:
parent
13077e48f8
commit
072343ce79
3 changed files with 31 additions and 21 deletions
|
@ -342,8 +342,19 @@ void DomainServer::handleConnectRequest(const QByteArray& packet, const HifiSock
|
||||||
// check if this connect request matches an assignment in the queue
|
// check if this connect request matches an assignment in the queue
|
||||||
bool isAssignment = _pendingAssignedNodes.contains(packetUUID);
|
bool isAssignment = _pendingAssignedNodes.contains(packetUUID);
|
||||||
SharedAssignmentPointer matchingQueuedAssignment = SharedAssignmentPointer();
|
SharedAssignmentPointer matchingQueuedAssignment = SharedAssignmentPointer();
|
||||||
|
PendingAssignedNodeData* pendingAssigneeData = NULL;
|
||||||
if (isAssignment) {
|
if (isAssignment) {
|
||||||
matchingQueuedAssignment = matchingQueuedAssignmentForCheckIn(packetUUID, nodeType);
|
pendingAssigneeData = _pendingAssignedNodes.take(packetUUID);
|
||||||
|
if (pendingAssigneeData) {
|
||||||
|
matchingQueuedAssignment = matchingQueuedAssignmentForCheckIn(packetUUID, nodeType);
|
||||||
|
|
||||||
|
if (matchingQueuedAssignment) {
|
||||||
|
qDebug() << "Assignment deployed with" << uuidStringWithoutCurlyBraces(packetUUID)
|
||||||
|
<< "matches unfulfilled assignment"
|
||||||
|
<< uuidStringWithoutCurlyBraces(matchingQueuedAssignment->getUUID());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!matchingQueuedAssignment && !_oauthProviderURL.isEmpty() && _argumentVariantMap.contains(ALLOWED_ROLES_CONFIG_KEY)) {
|
if (!matchingQueuedAssignment && !_oauthProviderURL.isEmpty() && _argumentVariantMap.contains(ALLOWED_ROLES_CONFIG_KEY)) {
|
||||||
|
@ -387,6 +398,10 @@ void DomainServer::handleConnectRequest(const QByteArray& packet, const HifiSock
|
||||||
|
|
||||||
if (isAssignment) {
|
if (isAssignment) {
|
||||||
nodeData->setAssignmentUUID(matchingQueuedAssignment->getUUID());
|
nodeData->setAssignmentUUID(matchingQueuedAssignment->getUUID());
|
||||||
|
nodeData->setWalletUUID(pendingAssigneeData->getWalletUUID());
|
||||||
|
|
||||||
|
// now that we've pulled the wallet UUID and added the node to our list, delete the pending assignee data
|
||||||
|
delete pendingAssigneeData;
|
||||||
}
|
}
|
||||||
|
|
||||||
nodeData->setSendingSockAddr(senderSockAddr);
|
nodeData->setSendingSockAddr(senderSockAddr);
|
||||||
|
@ -1076,28 +1091,18 @@ void DomainServer::nodeKilled(SharedNodePointer node) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SharedAssignmentPointer DomainServer::matchingQueuedAssignmentForCheckIn(const QUuid& checkInUUID, NodeType_t nodeType) {
|
SharedAssignmentPointer DomainServer::matchingQueuedAssignmentForCheckIn(const QUuid& assignmentUUID, NodeType_t nodeType) {
|
||||||
QQueue<SharedAssignmentPointer>::iterator i = _unfulfilledAssignments.begin();
|
QQueue<SharedAssignmentPointer>::iterator i = _unfulfilledAssignments.begin();
|
||||||
|
|
||||||
PendingAssignedNodeData* pendingAssigneeData = _pendingAssignedNodes.take(checkInUUID);
|
while (i != _unfulfilledAssignments.end()) {
|
||||||
|
if (i->data()->getType() == Assignment::typeForNodeType(nodeType)
|
||||||
if (pendingAssigneeData) {
|
&& i->data()->getUUID() == assignmentUUID) {
|
||||||
while (i != _unfulfilledAssignments.end()) {
|
// we have an unfulfilled assignment to return
|
||||||
if (i->data()->getType() == Assignment::typeForNodeType(nodeType)
|
|
||||||
&& i->data()->getUUID() == pendingAssigneeData->getAssignmentUUID()) {
|
// return the matching assignment
|
||||||
// we have an unfulfilled assignment to return
|
return _unfulfilledAssignments.takeAt(i - _unfulfilledAssignments.begin());
|
||||||
qDebug() << "Assignment deployed with" << uuidStringWithoutCurlyBraces(checkInUUID)
|
} else {
|
||||||
<< "matches unfulfilled assignment"
|
++i;
|
||||||
<< uuidStringWithoutCurlyBraces(pendingAssigneeData->getAssignmentUUID());
|
|
||||||
|
|
||||||
// first clear the pending assignee data
|
|
||||||
delete pendingAssigneeData;
|
|
||||||
|
|
||||||
// return the matching assignment
|
|
||||||
return _unfulfilledAssignments.takeAt(i - _unfulfilledAssignments.begin());
|
|
||||||
} else {
|
|
||||||
++i;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
DomainServerNodeData::DomainServerNodeData() :
|
DomainServerNodeData::DomainServerNodeData() :
|
||||||
_sessionSecretHash(),
|
_sessionSecretHash(),
|
||||||
_assignmentUUID(),
|
_assignmentUUID(),
|
||||||
|
_walletUUID(),
|
||||||
_statsJSONObject(),
|
_statsJSONObject(),
|
||||||
_sendingSockAddr(),
|
_sendingSockAddr(),
|
||||||
_isAuthenticated(true)
|
_isAuthenticated(true)
|
||||||
|
|
|
@ -30,6 +30,9 @@ public:
|
||||||
void setAssignmentUUID(const QUuid& assignmentUUID) { _assignmentUUID = assignmentUUID; }
|
void setAssignmentUUID(const QUuid& assignmentUUID) { _assignmentUUID = assignmentUUID; }
|
||||||
const QUuid& getAssignmentUUID() const { return _assignmentUUID; }
|
const QUuid& getAssignmentUUID() const { return _assignmentUUID; }
|
||||||
|
|
||||||
|
void setWalletUUID(const QUuid& walletUUID) { _walletUUID = walletUUID; }
|
||||||
|
const QUuid& getWalletUUID() const { return _walletUUID; }
|
||||||
|
|
||||||
void setSendingSockAddr(const HifiSockAddr& sendingSockAddr) { _sendingSockAddr = sendingSockAddr; }
|
void setSendingSockAddr(const HifiSockAddr& sendingSockAddr) { _sendingSockAddr = sendingSockAddr; }
|
||||||
const HifiSockAddr& getSendingSockAddr() { return _sendingSockAddr; }
|
const HifiSockAddr& getSendingSockAddr() { return _sendingSockAddr; }
|
||||||
|
|
||||||
|
@ -42,6 +45,7 @@ private:
|
||||||
|
|
||||||
QHash<QUuid, QUuid> _sessionSecretHash;
|
QHash<QUuid, QUuid> _sessionSecretHash;
|
||||||
QUuid _assignmentUUID;
|
QUuid _assignmentUUID;
|
||||||
|
QUuid _walletUUID;
|
||||||
QJsonObject _statsJSONObject;
|
QJsonObject _statsJSONObject;
|
||||||
HifiSockAddr _sendingSockAddr;
|
HifiSockAddr _sendingSockAddr;
|
||||||
bool _isAuthenticated;
|
bool _isAuthenticated;
|
||||||
|
|
Loading…
Reference in a new issue