Another checkpoint, getting closer

This commit is contained in:
Zach Fox 2016-12-15 18:16:45 -08:00 committed by Seth Alves
parent 9c09ec6755
commit 42127e4e0f
6 changed files with 29 additions and 21 deletions

View file

@ -799,19 +799,24 @@ void DomainServerSettingsManager::processUsernameFromIDRequestPacket(QSharedPoin
bool newPermissions = false; bool newPermissions = false;
QByteArray printableVerifiedUsername;
if (!verifiedUsername.isEmpty()) { if (!verifiedUsername.isEmpty()) {
QByteArray printableVerifiedUsername = qPrintable(verifiedUsername); printableVerifiedUsername = qPrintable(verifiedUsername);
// setup the packet } else {
auto usernameFromIDRequestPacket = NLPacket::create(PacketType::UsernameFromIDRequest, NUM_BYTES_RFC4122_UUID + printableVerifiedUsername.length(), true); printableVerifiedUsername = qPrintable("");
// write the node ID to the packet
usernameFromIDRequestPacket->write(nodeUUID.toRfc4122());
// write the username to the packet
usernameFromIDRequestPacket->write(printableVerifiedUsername);
auto nodeList = DependencyManager::get<LimitedNodeList>();
nodeList->sendPacket(std::move(usernameFromIDRequestPacket), message->getSenderSockAddr());
} }
// setup the packet
auto usernameFromIDReplyPacket = NLPacket::create(PacketType::UsernameFromIDReply, NUM_BYTES_RFC4122_UUID + printableVerifiedUsername.length(), true);
// write the node ID to the packet
usernameFromIDReplyPacket->write(nodeUUID.toRfc4122());
// write the username to the packet
usernameFromIDReplyPacket->write(printableVerifiedUsername);
auto nodeList = DependencyManager::get<LimitedNodeList>();
nodeList->sendPacket(std::move(usernameFromIDReplyPacket), message->getSenderSockAddr());
qDebug() << "SENDING PACKET.";
} }
else { else {
qWarning() << "Node username request received for unknown node. Refusing to process."; qWarning() << "Node username request received for unknown node. Refusing to process.";

View file

@ -128,7 +128,7 @@ NodeList::NodeList(char newOwnerType, int socketListenPort, int dtlsListenPort)
packetReceiver.registerListener(PacketType::ICEPingReply, &_domainHandler, "processICEPingReplyPacket"); packetReceiver.registerListener(PacketType::ICEPingReply, &_domainHandler, "processICEPingReplyPacket");
packetReceiver.registerListener(PacketType::DomainServerPathResponse, this, "processDomainServerPathResponse"); packetReceiver.registerListener(PacketType::DomainServerPathResponse, this, "processDomainServerPathResponse");
packetReceiver.registerListener(PacketType::DomainServerRemovedNode, this, "processDomainServerRemovedNode"); packetReceiver.registerListener(PacketType::DomainServerRemovedNode, this, "processDomainServerRemovedNode");
packetReceiver.registerListener(PacketType::UsernameFromIDRequest, this, "processUsernameFromIDRequestPacket"); packetReceiver.registerListener(PacketType::UsernameFromIDReply, this, "processUsernameFromIDReply");
} }
qint64 NodeList::sendStats(QJsonObject statsObject, HifiSockAddr destination) { qint64 NodeList::sendStats(QJsonObject statsObject, HifiSockAddr destination) {
@ -922,12 +922,13 @@ void NodeList::requestUsernameFromSessionID(const QUuid& nodeID) {
} }
} }
void NodeList::processUsernameFromIDRequestPacket(QSharedPointer<ReceivedMessage> message) { void NodeList::processUsernameFromIDReply(QSharedPointer<ReceivedMessage> message) {
// read the UUID from the packet // read the UUID from the packet
// read the UUID from the packet, remove it if it exists
QUuid nodeUUID = QUuid::fromRfc4122(message->readWithoutCopy(NUM_BYTES_RFC4122_UUID)); QUuid nodeUUID = QUuid::fromRfc4122(message->readWithoutCopy(NUM_BYTES_RFC4122_UUID));
// read the username from the packet // read the username from the packet
QString username = message->readString(); QString username = message->readString();
qDebug() << "Got username" << username << "for node" << uuidStringWithoutCurlyBraces(nodeUUID);
emit usernameFromID(nodeUUID, username); emit usernameFromID(nodeUUID, username);
} }

View file

@ -82,7 +82,7 @@ public:
void kickNodeBySessionID(const QUuid& nodeID); void kickNodeBySessionID(const QUuid& nodeID);
void muteNodeBySessionID(const QUuid& nodeID); void muteNodeBySessionID(const QUuid& nodeID);
void requestUsernameFromSessionID(const QUuid& nodeID); void requestUsernameFromSessionID(const QUuid& nodeID);
void processUsernameFromIDRequestPacket(QSharedPointer<ReceivedMessage> message); void processUsernameFromIDReply(QSharedPointer<ReceivedMessage> message);
public slots: public slots:
void reset(); void reset();

View file

@ -39,7 +39,7 @@ const QSet<PacketType> NON_SOURCED_PACKETS = QSet<PacketType>()
<< PacketType::ICEServerPeerInformation << PacketType::ICEServerQuery << PacketType::ICEServerHeartbeat << PacketType::ICEServerPeerInformation << PacketType::ICEServerQuery << PacketType::ICEServerHeartbeat
<< PacketType::ICEServerHeartbeatACK << PacketType::ICEPing << PacketType::ICEPingReply << PacketType::ICEServerHeartbeatACK << PacketType::ICEPing << PacketType::ICEPingReply
<< PacketType::ICEServerHeartbeatDenied << PacketType::AssignmentClientStatus << PacketType::StopNode << PacketType::ICEServerHeartbeatDenied << PacketType::AssignmentClientStatus << PacketType::StopNode
<< PacketType::DomainServerRemovedNode; << PacketType::DomainServerRemovedNode << PacketType::UsernameFromIDReply;
PacketVersion versionForPacketType(PacketType packetType) { PacketVersion versionForPacketType(PacketType packetType) {
switch (packetType) { switch (packetType) {

View file

@ -102,7 +102,9 @@ public:
NodeMuteRequest, NodeMuteRequest,
RadiusIgnoreRequest, RadiusIgnoreRequest,
UsernameFromIDRequest, UsernameFromIDRequest,
LAST_PACKET_TYPE = UsernameFromIDRequest UsernameFromIDReply,
LAST_PACKET_TYPE = RadiusIgnoreRequest
//LAST_PACKET_TYPE = UsernameFromIDRequest
}; };
}; };

View file

@ -118,11 +118,11 @@ function populateUserList() {
var avatar = AvatarList.getAvatar(id); var avatar = AvatarList.getAvatar(id);
var avatarPalDatum = { var avatarPalDatum = {
displayName: avatar.displayName || ('anonymous ' + counter++), displayName: avatar.displayName || ('anonymous ' + counter++),
userName: Users.canKick ? 'Obtaining username...' : '', userName: (Users.canKick && id) ? 'Obtaining username...' : '',
sessionId: id || '' sessionId: id || ''
}; };
if (Users.canKick) { if (Users.canKick && id) {
Users.getUsernameFromID(id); Users.requestUsernameFromID(id);
} }
data.push(avatarPalDatum); data.push(avatarPalDatum);
if (id) { // No overlay for ourself. if (id) { // No overlay for ourself.
@ -134,7 +134,7 @@ function populateUserList() {
} }
function usernameFromID(id, username) { function usernameFromID(id, username) {
var data = { id: id, username: username }; var data = { id: id, username: username + '\\' + id };
print('Username Data:', JSON.stringify(data)); print('Username Data:', JSON.stringify(data));
pal.sendToQml({ method: 'updateUsername', params: data }); pal.sendToQml({ method: 'updateUsername', params: data });
} }