From 36792e005a88ac0898f7b6936f65f0bf9b7d531c Mon Sep 17 00:00:00 2001 From: David Kelly Date: Mon, 19 Dec 2016 14:19:39 -0800 Subject: [PATCH] initial commit --- domain-server/src/DomainServerSettingsManager.cpp | 7 ++++++- libraries/networking/src/NodeList.cpp | 6 ++++-- libraries/networking/src/NodeList.h | 2 +- libraries/script-engine/src/UsersScriptingInterface.h | 6 +++--- scripts/system/pal.js | 4 ++-- 5 files changed, 16 insertions(+), 9 deletions(-) diff --git a/domain-server/src/DomainServerSettingsManager.cpp b/domain-server/src/DomainServerSettingsManager.cpp index 05cec07f80..c8895839ff 100644 --- a/domain-server/src/DomainServerSettingsManager.cpp +++ b/domain-server/src/DomainServerSettingsManager.cpp @@ -800,7 +800,12 @@ void DomainServerSettingsManager::processUsernameFromIDRequestPacket(QSharedPoin usernameFromIDReplyPacket->write(nodeUUID.toRfc4122()); usernameFromIDReplyPacket->writeString(verifiedUsername); - qDebug() << "Sending username" << verifiedUsername << "associated with node" << nodeUUID; + // now put in the machine fingerprint + DomainServerNodeData* nodeData = reinterpret_cast(matchingNode->getLinkedData()); + QUuid machineFingerprint = nodeData ? nodeData->getMachineFingerprint() : QUuid(); + usernameFromIDReplyPacket->write(machineFingerprint.toRfc4122()); + + qDebug() << "Sending username" << verifiedUsername << "and machine fingerprint" << machineFingerprint << "associated with node" << nodeUUID; // Ship it! limitedNodeList->sendPacket(std::move(usernameFromIDReplyPacket), *sendingNode); diff --git a/libraries/networking/src/NodeList.cpp b/libraries/networking/src/NodeList.cpp index f76189b13a..98798ba1b5 100644 --- a/libraries/networking/src/NodeList.cpp +++ b/libraries/networking/src/NodeList.cpp @@ -923,8 +923,10 @@ void NodeList::processUsernameFromIDReply(QSharedPointer messag QString nodeUUIDString = (QUuid::fromRfc4122(message->readWithoutCopy(NUM_BYTES_RFC4122_UUID))).toString(); // read the username from the packet QString username = message->readString(); + // read the machine fingerprint from the packet + QString machineFingerprintString = (QUuid::fromRfc4122(message->readWithoutCopy(NUM_BYTES_RFC4122_UUID))).toString(); - qDebug() << "Got username" << username << "for node" << nodeUUIDString; + qDebug() << "Got username" << username << "and machine fingerprint" << machineFingerprintString << "for node" << nodeUUIDString; - emit usernameFromIDReply(nodeUUIDString, username); + emit usernameFromIDReply(nodeUUIDString, username, machineFingerprintString); } diff --git a/libraries/networking/src/NodeList.h b/libraries/networking/src/NodeList.h index d10c790f45..d3f04cedd8 100644 --- a/libraries/networking/src/NodeList.h +++ b/libraries/networking/src/NodeList.h @@ -111,7 +111,7 @@ signals: void receivedDomainServerList(); void ignoredNode(const QUuid& nodeID); void ignoreRadiusEnabledChanged(bool isIgnored); - void usernameFromIDReply(const QString& nodeID, const QString& username); + void usernameFromIDReply(const QString& nodeID, const QString& username, const QString& machineFingerprint); private slots: void stopKeepalivePingTimer(); diff --git a/libraries/script-engine/src/UsersScriptingInterface.h b/libraries/script-engine/src/UsersScriptingInterface.h index 1936a2e914..855dc06c11 100644 --- a/libraries/script-engine/src/UsersScriptingInterface.h +++ b/libraries/script-engine/src/UsersScriptingInterface.h @@ -101,10 +101,10 @@ signals: void enteredIgnoreRadius(); /**jsdoc - * Notifies scripts of the username associated with a UUID. - * @function Users.enteredIgnoreRadius + * Notifies scripts of the username and machine fingerprint associated with a UUID. + * @function Users.usernameFromIDReply */ - void usernameFromIDReply(const QString& nodeID, const QString& username); + void usernameFromIDReply(const QString& nodeID, const QString& username, const QString& machineFingerprint); }; diff --git a/scripts/system/pal.js b/scripts/system/pal.js index 20f4167281..6df5531502 100644 --- a/scripts/system/pal.js +++ b/scripts/system/pal.js @@ -137,7 +137,7 @@ function populateUserList() { } // The function that handles the reply from the server -function usernameFromIDReply(id, username) { +function usernameFromIDReply(id, username, machineFingerprint) { var data; // If the ID we've received is our ID... if (AvatarList.getAvatar('').sessionUUID === id) { @@ -145,7 +145,7 @@ function usernameFromIDReply(id, username) { data = ['', username + ' (hidden)'] } else { // Set the data to contain the ID and the username+ID concat string. - data = [id, username + '/' + id]; + data = [id, username + '/' + machineFingerprint]; } print('Username Data:', JSON.stringify(data)); // Ship the data off to QML