Another checkpoint, getting closer

This commit is contained in:
Zach Fox 2016-12-15 18:16:45 -08:00
parent c9dc91900f
commit 802e283508
6 changed files with 29 additions and 21 deletions

View file

@ -769,19 +769,24 @@ void DomainServerSettingsManager::processUsernameFromIDRequestPacket(QSharedPoin
bool newPermissions = false;
QByteArray printableVerifiedUsername;
if (!verifiedUsername.isEmpty()) {
QByteArray printableVerifiedUsername = qPrintable(verifiedUsername);
// setup the packet
auto usernameFromIDRequestPacket = NLPacket::create(PacketType::UsernameFromIDRequest, NUM_BYTES_RFC4122_UUID + printableVerifiedUsername.length(), true);
// 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());
printableVerifiedUsername = qPrintable(verifiedUsername);
} else {
printableVerifiedUsername = qPrintable("");
}
// 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 {
qWarning() << "Node username request received for unknown node. Refusing to process.";

View file

@ -127,7 +127,7 @@ NodeList::NodeList(char newOwnerType, int socketListenPort, int dtlsListenPort)
packetReceiver.registerListener(PacketType::ICEPingReply, &_domainHandler, "processICEPingReplyPacket");
packetReceiver.registerListener(PacketType::DomainServerPathResponse, this, "processDomainServerPathResponse");
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) {
@ -917,12 +917,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, remove it if it exists
QUuid nodeUUID = QUuid::fromRfc4122(message->readWithoutCopy(NUM_BYTES_RFC4122_UUID));
// read the username from the packet
QString username = message->readString();
qDebug() << "Got username" << username << "for node" << uuidStringWithoutCurlyBraces(nodeUUID);
emit usernameFromID(nodeUUID, username);
}

View file

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

View file

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

View file

@ -102,7 +102,9 @@ public:
NodeMuteRequest,
RadiusIgnoreRequest,
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 avatarPalDatum = {
displayName: avatar.displayName || ('anonymous ' + counter++),
userName: Users.canKick ? 'Obtaining username...' : '',
userName: (Users.canKick && id) ? 'Obtaining username...' : '',
sessionId: id || ''
};
if (Users.canKick) {
Users.getUsernameFromID(id);
if (Users.canKick && id) {
Users.requestUsernameFromID(id);
}
data.push(avatarPalDatum);
if (id) { // No overlay for ourself.
@ -134,7 +134,7 @@ function populateUserList() {
}
function usernameFromID(id, username) {
var data = { id: id, username: username };
var data = { id: id, username: username + '\\' + id };
print('Username Data:', JSON.stringify(data));
pal.sendToQml({ method: 'updateUsername', params: data });
}